{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Diabetes-- Logistic 回归&SVM "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1. 任务描述"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "任务目的： 在 Pima Indians Diabetes Data Set（皮马印第安人糖尿病数据集）进行分类器练习"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Pregnancies： 怀孕次数  \n",
    "Glucose： 口服葡萄糖耐受试验中，2 小时的血浆葡萄糖浓度。  \n",
    "BloodPressure： 舒张压（mm Hg）  \n",
    "SkinThickness： 三头肌皮肤褶层厚度（mm）  \n",
    "Insulin：2 小时血清胰岛素含量（μU/ ml）  \n",
    "BMI： 体重指数（体重，kg /（身高，m）^   \n",
    "DiabetesPedigreeFunction： 糖尿病家族史  \n",
    "Age： 年龄（岁）  \n",
    "Outcome： 输出变了/类别标签（0 或 1，出现糖尿病为 1, 否则为 0） "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "需要提交代码文件，并给出必要的结果解释。  \n",
    "1) 训练数据和测试数据分割（随机选择 20%的数据作为测试集）（ 10 分）  \n",
    "2) 适当的特征工程（及数据探索）;（10 分）  \n",
    "3) Logistic 回归，并选择最佳的正则函数（L1/L2）及正则参数；（30 分）  \n",
    "4) 线性 SVM，并选择最佳正则参数，比较与 Logistic 回归的性能，简单说明原因。 （20 分）  \n",
    "5) RBF 核的 SVM，并选择最佳的超参数（正则参数、RBF 核函数宽度）；（ 30 分）\n",
    " "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1.1 导入工具包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "from sklearn.feature_extraction.text import  CountVectorizer\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer\n",
    "\n",
    "from scipy import sparse\n",
    "\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "\n",
    "from sklearn.cluster import KMeans\n",
    "from nltk.metrics import distance as distance\n",
    "\n",
    "from sklearn import model_selection,preprocessing,ensemble\n",
    "from sklearn.metrics import log_loss\n",
    "from sklearn.feature_extraction.text import TfidfVectorizer,CountVectorizer\n",
    "\n",
    "#from sklearn.cross_validation import StratifiedKFold\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "\n",
    "#from MeanEncoder import MeanEncoder\n",
    "\n",
    "#可视化\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2 数据探索 \n",
    "1. 数据质量分析\n",
    "2. 特征分布特性分析  \n",
    "3. 特征相关性分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " ### 2.1 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#import data\n",
    "dpath = \"./\"\n",
    "original_data = pd.read_csv(dpath + \"diabetes.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.2 数据质量分析 -- 查看缺失值和异常值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>148</td>\n",
       "      <td>72</td>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>33.6</td>\n",
       "      <td>0.627</td>\n",
       "      <td>50</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>85</td>\n",
       "      <td>66</td>\n",
       "      <td>29</td>\n",
       "      <td>0</td>\n",
       "      <td>26.6</td>\n",
       "      <td>0.351</td>\n",
       "      <td>31</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8</td>\n",
       "      <td>183</td>\n",
       "      <td>64</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>23.3</td>\n",
       "      <td>0.672</td>\n",
       "      <td>32</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>89</td>\n",
       "      <td>66</td>\n",
       "      <td>23</td>\n",
       "      <td>94</td>\n",
       "      <td>28.1</td>\n",
       "      <td>0.167</td>\n",
       "      <td>21</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0</td>\n",
       "      <td>137</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>168</td>\n",
       "      <td>43.1</td>\n",
       "      <td>2.288</td>\n",
       "      <td>33</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
       "0            6      148             72             35        0  33.6   \n",
       "1            1       85             66             29        0  26.6   \n",
       "2            8      183             64              0        0  23.3   \n",
       "3            1       89             66             23       94  28.1   \n",
       "4            0      137             40             35      168  43.1   \n",
       "\n",
       "   DiabetesPedigreeFunction  Age  Outcome  \n",
       "0                     0.627   50        1  \n",
       "1                     0.351   31        0  \n",
       "2                     0.672   32        1  \n",
       "3                     0.167   21        0  \n",
       "4                     2.288   33        1  "
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "original_data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 768 entries, 0 to 767\n",
      "Data columns (total 9 columns):\n",
      "Pregnancies                 768 non-null int64\n",
      "Glucose                     768 non-null int64\n",
      "BloodPressure               768 non-null int64\n",
      "SkinThickness               768 non-null int64\n",
      "Insulin                     768 non-null int64\n",
      "BMI                         768 non-null float64\n",
      "DiabetesPedigreeFunction    768 non-null float64\n",
      "Age                         768 non-null int64\n",
      "Outcome                     768 non-null int64\n",
      "dtypes: float64(2), int64(7)\n",
      "memory usage: 54.1 KB\n"
     ]
    }
   ],
   "source": [
    "original_data.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练数据中空值数量为：  0\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Null Count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Outcome</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Age</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BMI</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Insulin</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SkinThickness</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BloodPressure</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Glucose</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Pregnancies</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                          Null Count\n",
       "Outcome                            0\n",
       "Age                                0\n",
       "DiabetesPedigreeFunction           0\n",
       "BMI                                0\n",
       "Insulin                            0\n",
       "SkinThickness                      0\n",
       "BloodPressure                      0\n",
       "Glucose                            0\n",
       "Pregnancies                        0"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#查看训练数据哪些属性有缺失值，并统计数量\n",
    "print(\"训练数据中空值数量为： \", original_data.isnull().values.sum())\n",
    "original_data_nulls = pd.DataFrame(original_data.isnull().sum().sort_values(ascending=False)[:20], columns=['Null Count'])\n",
    "original_data_nulls"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "original_data中一共有768条数据，9个数值类型属性，数据集中无缺失值，无类别型特征,但是仔细一看数据中，有很多零值，想血糖、血压、BMI等，这都是缺失值，需要做一些处理。\n",
    "每个样本有 8 个输入变量和 1 个输出 变量（outcome）。  \n",
    "也就意味着，对该数据集不用做数据填补工作。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 异常值处理, 对数据中的特征值做零值处理，使用均值填充"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 可以使用Imputer对零值进行均值填充，有些与Outcome相关度高的因素是零的话对模型的准确度会产生影响"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [],
   "source": [
    "#求值为零的个数\n",
    "def count_zeros(arr):\n",
    "    count = 0;\n",
    "    for item in arr:\n",
    "        if item == 0:\n",
    "            count += 1;\n",
    "    return count;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#求均值\n",
    "def avg(arr):\n",
    "    sum = 0;\n",
    "    count = 0;\n",
    "    for item in arr:\n",
    "        if item != 0:\n",
    "            sum += item;\n",
    "            count += 1;\n",
    "    return round(sum / count, 1);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#填充0\n",
    "def fill_zeros(arr):\n",
    "    avg_col = avg(arr);\n",
    "    zeros = count_zeros(arr);\n",
    "    if zeros > 0:\n",
    "        for i in range(arr.shape[0]):\n",
    "            if arr[i] == 0:\n",
    "                arr[i] = avg_col;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#填充整个DataFrame\n",
    "def fill_zeros_df(df, arr_col):\n",
    "    for i in range(len(arr_col)):\n",
    "        fill_zeros(df[arr_col[i]]);\n",
    "        print('-------',arr_col[i], '-------');\n",
    "        print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\envs\\python3\\lib\\site-packages\\ipykernel_launcher.py:8: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "------- Glucose -------\n",
      "     Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
      "0              6      148             72             35        0  33.6   \n",
      "1              1       85             66             29        0  26.6   \n",
      "2              8      183             64              0        0  23.3   \n",
      "3              1       89             66             23       94  28.1   \n",
      "4              0      137             40             35      168  43.1   \n",
      "5              5      116             74              0        0  25.6   \n",
      "6              3       78             50             32       88  31.0   \n",
      "7             10      115              0              0        0  35.3   \n",
      "8              2      197             70             45      543  30.5   \n",
      "9              8      125             96              0        0   0.0   \n",
      "10             4      110             92              0        0  37.6   \n",
      "11            10      168             74              0        0  38.0   \n",
      "12            10      139             80              0        0  27.1   \n",
      "13             1      189             60             23      846  30.1   \n",
      "14             5      166             72             19      175  25.8   \n",
      "15             7      100              0              0        0  30.0   \n",
      "16             0      118             84             47      230  45.8   \n",
      "17             7      107             74              0        0  29.6   \n",
      "18             1      103             30             38       83  43.3   \n",
      "19             1      115             70             30       96  34.6   \n",
      "20             3      126             88             41      235  39.3   \n",
      "21             8       99             84              0        0  35.4   \n",
      "22             7      196             90              0        0  39.8   \n",
      "23             9      119             80             35        0  29.0   \n",
      "24            11      143             94             33      146  36.6   \n",
      "25            10      125             70             26      115  31.1   \n",
      "26             7      147             76              0        0  39.4   \n",
      "27             1       97             66             15      140  23.2   \n",
      "28            13      145             82             19      110  22.2   \n",
      "29             5      117             92              0        0  34.1   \n",
      "..           ...      ...            ...            ...      ...   ...   \n",
      "738            2       99             60             17      160  36.6   \n",
      "739            1      102             74              0        0  39.5   \n",
      "740           11      120             80             37      150  42.3   \n",
      "741            3      102             44             20       94  30.8   \n",
      "742            1      109             58             18      116  28.5   \n",
      "743            9      140             94              0        0  32.7   \n",
      "744           13      153             88             37      140  40.6   \n",
      "745           12      100             84             33      105  30.0   \n",
      "746            1      147             94             41        0  49.3   \n",
      "747            1       81             74             41       57  46.3   \n",
      "748            3      187             70             22      200  36.4   \n",
      "749            6      162             62              0        0  24.3   \n",
      "750            4      136             70              0        0  31.2   \n",
      "751            1      121             78             39       74  39.0   \n",
      "752            3      108             62             24        0  26.0   \n",
      "753            0      181             88             44      510  43.3   \n",
      "754            8      154             78             32        0  32.4   \n",
      "755            1      128             88             39      110  36.5   \n",
      "756            7      137             90             41        0  32.0   \n",
      "757            0      123             72              0        0  36.3   \n",
      "758            1      106             76              0        0  37.5   \n",
      "759            6      190             92              0        0  35.5   \n",
      "760            2       88             58             26       16  28.4   \n",
      "761            9      170             74             31        0  44.0   \n",
      "762            9       89             62              0        0  22.5   \n",
      "763           10      101             76             48      180  32.9   \n",
      "764            2      122             70             27        0  36.8   \n",
      "765            5      121             72             23      112  26.2   \n",
      "766            1      126             60              0        0  30.1   \n",
      "767            1       93             70             31        0  30.4   \n",
      "\n",
      "     DiabetesPedigreeFunction  Age  Outcome  \n",
      "0                       0.627   50        1  \n",
      "1                       0.351   31        0  \n",
      "2                       0.672   32        1  \n",
      "3                       0.167   21        0  \n",
      "4                       2.288   33        1  \n",
      "5                       0.201   30        0  \n",
      "6                       0.248   26        1  \n",
      "7                       0.134   29        0  \n",
      "8                       0.158   53        1  \n",
      "9                       0.232   54        1  \n",
      "10                      0.191   30        0  \n",
      "11                      0.537   34        1  \n",
      "12                      1.441   57        0  \n",
      "13                      0.398   59        1  \n",
      "14                      0.587   51        1  \n",
      "15                      0.484   32        1  \n",
      "16                      0.551   31        1  \n",
      "17                      0.254   31        1  \n",
      "18                      0.183   33        0  \n",
      "19                      0.529   32        1  \n",
      "20                      0.704   27        0  \n",
      "21                      0.388   50        0  \n",
      "22                      0.451   41        1  \n",
      "23                      0.263   29        1  \n",
      "24                      0.254   51        1  \n",
      "25                      0.205   41        1  \n",
      "26                      0.257   43        1  \n",
      "27                      0.487   22        0  \n",
      "28                      0.245   57        0  \n",
      "29                      0.337   38        0  \n",
      "..                        ...  ...      ...  \n",
      "738                     0.453   21        0  \n",
      "739                     0.293   42        1  \n",
      "740                     0.785   48        1  \n",
      "741                     0.400   26        0  \n",
      "742                     0.219   22        0  \n",
      "743                     0.734   45        1  \n",
      "744                     1.174   39        0  \n",
      "745                     0.488   46        0  \n",
      "746                     0.358   27        1  \n",
      "747                     1.096   32        0  \n",
      "748                     0.408   36        1  \n",
      "749                     0.178   50        1  \n",
      "750                     1.182   22        1  \n",
      "751                     0.261   28        0  \n",
      "752                     0.223   25        0  \n",
      "753                     0.222   26        1  \n",
      "754                     0.443   45        1  \n",
      "755                     1.057   37        1  \n",
      "756                     0.391   39        0  \n",
      "757                     0.258   52        1  \n",
      "758                     0.197   26        0  \n",
      "759                     0.278   66        1  \n",
      "760                     0.766   22        0  \n",
      "761                     0.403   43        1  \n",
      "762                     0.142   33        0  \n",
      "763                     0.171   63        0  \n",
      "764                     0.340   27        0  \n",
      "765                     0.245   30        0  \n",
      "766                     0.349   47        1  \n",
      "767                     0.315   23        0  \n",
      "\n",
      "[768 rows x 9 columns]\n",
      "------- SkinThickness -------\n",
      "     Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
      "0              6      148             72             35        0  33.6   \n",
      "1              1       85             66             29        0  26.6   \n",
      "2              8      183             64             29        0  23.3   \n",
      "3              1       89             66             23       94  28.1   \n",
      "4              0      137             40             35      168  43.1   \n",
      "5              5      116             74             29        0  25.6   \n",
      "6              3       78             50             32       88  31.0   \n",
      "7             10      115              0             29        0  35.3   \n",
      "8              2      197             70             45      543  30.5   \n",
      "9              8      125             96             29        0   0.0   \n",
      "10             4      110             92             29        0  37.6   \n",
      "11            10      168             74             29        0  38.0   \n",
      "12            10      139             80             29        0  27.1   \n",
      "13             1      189             60             23      846  30.1   \n",
      "14             5      166             72             19      175  25.8   \n",
      "15             7      100              0             29        0  30.0   \n",
      "16             0      118             84             47      230  45.8   \n",
      "17             7      107             74             29        0  29.6   \n",
      "18             1      103             30             38       83  43.3   \n",
      "19             1      115             70             30       96  34.6   \n",
      "20             3      126             88             41      235  39.3   \n",
      "21             8       99             84             29        0  35.4   \n",
      "22             7      196             90             29        0  39.8   \n",
      "23             9      119             80             35        0  29.0   \n",
      "24            11      143             94             33      146  36.6   \n",
      "25            10      125             70             26      115  31.1   \n",
      "26             7      147             76             29        0  39.4   \n",
      "27             1       97             66             15      140  23.2   \n",
      "28            13      145             82             19      110  22.2   \n",
      "29             5      117             92             29        0  34.1   \n",
      "..           ...      ...            ...            ...      ...   ...   \n",
      "738            2       99             60             17      160  36.6   \n",
      "739            1      102             74             29        0  39.5   \n",
      "740           11      120             80             37      150  42.3   \n",
      "741            3      102             44             20       94  30.8   \n",
      "742            1      109             58             18      116  28.5   \n",
      "743            9      140             94             29        0  32.7   \n",
      "744           13      153             88             37      140  40.6   \n",
      "745           12      100             84             33      105  30.0   \n",
      "746            1      147             94             41        0  49.3   \n",
      "747            1       81             74             41       57  46.3   \n",
      "748            3      187             70             22      200  36.4   \n",
      "749            6      162             62             29        0  24.3   \n",
      "750            4      136             70             29        0  31.2   \n",
      "751            1      121             78             39       74  39.0   \n",
      "752            3      108             62             24        0  26.0   \n",
      "753            0      181             88             44      510  43.3   \n",
      "754            8      154             78             32        0  32.4   \n",
      "755            1      128             88             39      110  36.5   \n",
      "756            7      137             90             41        0  32.0   \n",
      "757            0      123             72             29        0  36.3   \n",
      "758            1      106             76             29        0  37.5   \n",
      "759            6      190             92             29        0  35.5   \n",
      "760            2       88             58             26       16  28.4   \n",
      "761            9      170             74             31        0  44.0   \n",
      "762            9       89             62             29        0  22.5   \n",
      "763           10      101             76             48      180  32.9   \n",
      "764            2      122             70             27        0  36.8   \n",
      "765            5      121             72             23      112  26.2   \n",
      "766            1      126             60             29        0  30.1   \n",
      "767            1       93             70             31        0  30.4   \n",
      "\n",
      "     DiabetesPedigreeFunction  Age  Outcome  \n",
      "0                       0.627   50        1  \n",
      "1                       0.351   31        0  \n",
      "2                       0.672   32        1  \n",
      "3                       0.167   21        0  \n",
      "4                       2.288   33        1  \n",
      "5                       0.201   30        0  \n",
      "6                       0.248   26        1  \n",
      "7                       0.134   29        0  \n",
      "8                       0.158   53        1  \n",
      "9                       0.232   54        1  \n",
      "10                      0.191   30        0  \n",
      "11                      0.537   34        1  \n",
      "12                      1.441   57        0  \n",
      "13                      0.398   59        1  \n",
      "14                      0.587   51        1  \n",
      "15                      0.484   32        1  \n",
      "16                      0.551   31        1  \n",
      "17                      0.254   31        1  \n",
      "18                      0.183   33        0  \n",
      "19                      0.529   32        1  \n",
      "20                      0.704   27        0  \n",
      "21                      0.388   50        0  \n",
      "22                      0.451   41        1  \n",
      "23                      0.263   29        1  \n",
      "24                      0.254   51        1  \n",
      "25                      0.205   41        1  \n",
      "26                      0.257   43        1  \n",
      "27                      0.487   22        0  \n",
      "28                      0.245   57        0  \n",
      "29                      0.337   38        0  \n",
      "..                        ...  ...      ...  \n",
      "738                     0.453   21        0  \n",
      "739                     0.293   42        1  \n",
      "740                     0.785   48        1  \n",
      "741                     0.400   26        0  \n",
      "742                     0.219   22        0  \n",
      "743                     0.734   45        1  \n",
      "744                     1.174   39        0  \n",
      "745                     0.488   46        0  \n",
      "746                     0.358   27        1  \n",
      "747                     1.096   32        0  \n",
      "748                     0.408   36        1  \n",
      "749                     0.178   50        1  \n",
      "750                     1.182   22        1  \n",
      "751                     0.261   28        0  \n",
      "752                     0.223   25        0  \n",
      "753                     0.222   26        1  \n",
      "754                     0.443   45        1  \n",
      "755                     1.057   37        1  \n",
      "756                     0.391   39        0  \n",
      "757                     0.258   52        1  \n",
      "758                     0.197   26        0  \n",
      "759                     0.278   66        1  \n",
      "760                     0.766   22        0  \n",
      "761                     0.403   43        1  \n",
      "762                     0.142   33        0  \n",
      "763                     0.171   63        0  \n",
      "764                     0.340   27        0  \n",
      "765                     0.245   30        0  \n",
      "766                     0.349   47        1  \n",
      "767                     0.315   23        0  \n",
      "\n",
      "[768 rows x 9 columns]\n",
      "------- Insulin -------\n",
      "     Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
      "0              6      148             72             35      155  33.6   \n",
      "1              1       85             66             29      155  26.6   \n",
      "2              8      183             64             29      155  23.3   \n",
      "3              1       89             66             23       94  28.1   \n",
      "4              0      137             40             35      168  43.1   \n",
      "5              5      116             74             29      155  25.6   \n",
      "6              3       78             50             32       88  31.0   \n",
      "7             10      115              0             29      155  35.3   \n",
      "8              2      197             70             45      543  30.5   \n",
      "9              8      125             96             29      155   0.0   \n",
      "10             4      110             92             29      155  37.6   \n",
      "11            10      168             74             29      155  38.0   \n",
      "12            10      139             80             29      155  27.1   \n",
      "13             1      189             60             23      846  30.1   \n",
      "14             5      166             72             19      175  25.8   \n",
      "15             7      100              0             29      155  30.0   \n",
      "16             0      118             84             47      230  45.8   \n",
      "17             7      107             74             29      155  29.6   \n",
      "18             1      103             30             38       83  43.3   \n",
      "19             1      115             70             30       96  34.6   \n",
      "20             3      126             88             41      235  39.3   \n",
      "21             8       99             84             29      155  35.4   \n",
      "22             7      196             90             29      155  39.8   \n",
      "23             9      119             80             35      155  29.0   \n",
      "24            11      143             94             33      146  36.6   \n",
      "25            10      125             70             26      115  31.1   \n",
      "26             7      147             76             29      155  39.4   \n",
      "27             1       97             66             15      140  23.2   \n",
      "28            13      145             82             19      110  22.2   \n",
      "29             5      117             92             29      155  34.1   \n",
      "..           ...      ...            ...            ...      ...   ...   \n",
      "738            2       99             60             17      160  36.6   \n",
      "739            1      102             74             29      155  39.5   \n",
      "740           11      120             80             37      150  42.3   \n",
      "741            3      102             44             20       94  30.8   \n",
      "742            1      109             58             18      116  28.5   \n",
      "743            9      140             94             29      155  32.7   \n",
      "744           13      153             88             37      140  40.6   \n",
      "745           12      100             84             33      105  30.0   \n",
      "746            1      147             94             41      155  49.3   \n",
      "747            1       81             74             41       57  46.3   \n",
      "748            3      187             70             22      200  36.4   \n",
      "749            6      162             62             29      155  24.3   \n",
      "750            4      136             70             29      155  31.2   \n",
      "751            1      121             78             39       74  39.0   \n",
      "752            3      108             62             24      155  26.0   \n",
      "753            0      181             88             44      510  43.3   \n",
      "754            8      154             78             32      155  32.4   \n",
      "755            1      128             88             39      110  36.5   \n",
      "756            7      137             90             41      155  32.0   \n",
      "757            0      123             72             29      155  36.3   \n",
      "758            1      106             76             29      155  37.5   \n",
      "759            6      190             92             29      155  35.5   \n",
      "760            2       88             58             26       16  28.4   \n",
      "761            9      170             74             31      155  44.0   \n",
      "762            9       89             62             29      155  22.5   \n",
      "763           10      101             76             48      180  32.9   \n",
      "764            2      122             70             27      155  36.8   \n",
      "765            5      121             72             23      112  26.2   \n",
      "766            1      126             60             29      155  30.1   \n",
      "767            1       93             70             31      155  30.4   \n",
      "\n",
      "     DiabetesPedigreeFunction  Age  Outcome  \n",
      "0                       0.627   50        1  \n",
      "1                       0.351   31        0  \n",
      "2                       0.672   32        1  \n",
      "3                       0.167   21        0  \n",
      "4                       2.288   33        1  \n",
      "5                       0.201   30        0  \n",
      "6                       0.248   26        1  \n",
      "7                       0.134   29        0  \n",
      "8                       0.158   53        1  \n",
      "9                       0.232   54        1  \n",
      "10                      0.191   30        0  \n",
      "11                      0.537   34        1  \n",
      "12                      1.441   57        0  \n",
      "13                      0.398   59        1  \n",
      "14                      0.587   51        1  \n",
      "15                      0.484   32        1  \n",
      "16                      0.551   31        1  \n",
      "17                      0.254   31        1  \n",
      "18                      0.183   33        0  \n",
      "19                      0.529   32        1  \n",
      "20                      0.704   27        0  \n",
      "21                      0.388   50        0  \n",
      "22                      0.451   41        1  \n",
      "23                      0.263   29        1  \n",
      "24                      0.254   51        1  \n",
      "25                      0.205   41        1  \n",
      "26                      0.257   43        1  \n",
      "27                      0.487   22        0  \n",
      "28                      0.245   57        0  \n",
      "29                      0.337   38        0  \n",
      "..                        ...  ...      ...  \n",
      "738                     0.453   21        0  \n",
      "739                     0.293   42        1  \n",
      "740                     0.785   48        1  \n",
      "741                     0.400   26        0  \n",
      "742                     0.219   22        0  \n",
      "743                     0.734   45        1  \n",
      "744                     1.174   39        0  \n",
      "745                     0.488   46        0  \n",
      "746                     0.358   27        1  \n",
      "747                     1.096   32        0  \n",
      "748                     0.408   36        1  \n",
      "749                     0.178   50        1  \n",
      "750                     1.182   22        1  \n",
      "751                     0.261   28        0  \n",
      "752                     0.223   25        0  \n",
      "753                     0.222   26        1  \n",
      "754                     0.443   45        1  \n",
      "755                     1.057   37        1  \n",
      "756                     0.391   39        0  \n",
      "757                     0.258   52        1  \n",
      "758                     0.197   26        0  \n",
      "759                     0.278   66        1  \n",
      "760                     0.766   22        0  \n",
      "761                     0.403   43        1  \n",
      "762                     0.142   33        0  \n",
      "763                     0.171   63        0  \n",
      "764                     0.340   27        0  \n",
      "765                     0.245   30        0  \n",
      "766                     0.349   47        1  \n",
      "767                     0.315   23        0  \n",
      "\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[768 rows x 9 columns]\n",
      "------- BloodPressure -------\n",
      "     Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
      "0              6      148             72             35      155  33.6   \n",
      "1              1       85             66             29      155  26.6   \n",
      "2              8      183             64             29      155  23.3   \n",
      "3              1       89             66             23       94  28.1   \n",
      "4              0      137             40             35      168  43.1   \n",
      "5              5      116             74             29      155  25.6   \n",
      "6              3       78             50             32       88  31.0   \n",
      "7             10      115             72             29      155  35.3   \n",
      "8              2      197             70             45      543  30.5   \n",
      "9              8      125             96             29      155   0.0   \n",
      "10             4      110             92             29      155  37.6   \n",
      "11            10      168             74             29      155  38.0   \n",
      "12            10      139             80             29      155  27.1   \n",
      "13             1      189             60             23      846  30.1   \n",
      "14             5      166             72             19      175  25.8   \n",
      "15             7      100             72             29      155  30.0   \n",
      "16             0      118             84             47      230  45.8   \n",
      "17             7      107             74             29      155  29.6   \n",
      "18             1      103             30             38       83  43.3   \n",
      "19             1      115             70             30       96  34.6   \n",
      "20             3      126             88             41      235  39.3   \n",
      "21             8       99             84             29      155  35.4   \n",
      "22             7      196             90             29      155  39.8   \n",
      "23             9      119             80             35      155  29.0   \n",
      "24            11      143             94             33      146  36.6   \n",
      "25            10      125             70             26      115  31.1   \n",
      "26             7      147             76             29      155  39.4   \n",
      "27             1       97             66             15      140  23.2   \n",
      "28            13      145             82             19      110  22.2   \n",
      "29             5      117             92             29      155  34.1   \n",
      "..           ...      ...            ...            ...      ...   ...   \n",
      "738            2       99             60             17      160  36.6   \n",
      "739            1      102             74             29      155  39.5   \n",
      "740           11      120             80             37      150  42.3   \n",
      "741            3      102             44             20       94  30.8   \n",
      "742            1      109             58             18      116  28.5   \n",
      "743            9      140             94             29      155  32.7   \n",
      "744           13      153             88             37      140  40.6   \n",
      "745           12      100             84             33      105  30.0   \n",
      "746            1      147             94             41      155  49.3   \n",
      "747            1       81             74             41       57  46.3   \n",
      "748            3      187             70             22      200  36.4   \n",
      "749            6      162             62             29      155  24.3   \n",
      "750            4      136             70             29      155  31.2   \n",
      "751            1      121             78             39       74  39.0   \n",
      "752            3      108             62             24      155  26.0   \n",
      "753            0      181             88             44      510  43.3   \n",
      "754            8      154             78             32      155  32.4   \n",
      "755            1      128             88             39      110  36.5   \n",
      "756            7      137             90             41      155  32.0   \n",
      "757            0      123             72             29      155  36.3   \n",
      "758            1      106             76             29      155  37.5   \n",
      "759            6      190             92             29      155  35.5   \n",
      "760            2       88             58             26       16  28.4   \n",
      "761            9      170             74             31      155  44.0   \n",
      "762            9       89             62             29      155  22.5   \n",
      "763           10      101             76             48      180  32.9   \n",
      "764            2      122             70             27      155  36.8   \n",
      "765            5      121             72             23      112  26.2   \n",
      "766            1      126             60             29      155  30.1   \n",
      "767            1       93             70             31      155  30.4   \n",
      "\n",
      "     DiabetesPedigreeFunction  Age  Outcome  \n",
      "0                       0.627   50        1  \n",
      "1                       0.351   31        0  \n",
      "2                       0.672   32        1  \n",
      "3                       0.167   21        0  \n",
      "4                       2.288   33        1  \n",
      "5                       0.201   30        0  \n",
      "6                       0.248   26        1  \n",
      "7                       0.134   29        0  \n",
      "8                       0.158   53        1  \n",
      "9                       0.232   54        1  \n",
      "10                      0.191   30        0  \n",
      "11                      0.537   34        1  \n",
      "12                      1.441   57        0  \n",
      "13                      0.398   59        1  \n",
      "14                      0.587   51        1  \n",
      "15                      0.484   32        1  \n",
      "16                      0.551   31        1  \n",
      "17                      0.254   31        1  \n",
      "18                      0.183   33        0  \n",
      "19                      0.529   32        1  \n",
      "20                      0.704   27        0  \n",
      "21                      0.388   50        0  \n",
      "22                      0.451   41        1  \n",
      "23                      0.263   29        1  \n",
      "24                      0.254   51        1  \n",
      "25                      0.205   41        1  \n",
      "26                      0.257   43        1  \n",
      "27                      0.487   22        0  \n",
      "28                      0.245   57        0  \n",
      "29                      0.337   38        0  \n",
      "..                        ...  ...      ...  \n",
      "738                     0.453   21        0  \n",
      "739                     0.293   42        1  \n",
      "740                     0.785   48        1  \n",
      "741                     0.400   26        0  \n",
      "742                     0.219   22        0  \n",
      "743                     0.734   45        1  \n",
      "744                     1.174   39        0  \n",
      "745                     0.488   46        0  \n",
      "746                     0.358   27        1  \n",
      "747                     1.096   32        0  \n",
      "748                     0.408   36        1  \n",
      "749                     0.178   50        1  \n",
      "750                     1.182   22        1  \n",
      "751                     0.261   28        0  \n",
      "752                     0.223   25        0  \n",
      "753                     0.222   26        1  \n",
      "754                     0.443   45        1  \n",
      "755                     1.057   37        1  \n",
      "756                     0.391   39        0  \n",
      "757                     0.258   52        1  \n",
      "758                     0.197   26        0  \n",
      "759                     0.278   66        1  \n",
      "760                     0.766   22        0  \n",
      "761                     0.403   43        1  \n",
      "762                     0.142   33        0  \n",
      "763                     0.171   63        0  \n",
      "764                     0.340   27        0  \n",
      "765                     0.245   30        0  \n",
      "766                     0.349   47        1  \n",
      "767                     0.315   23        0  \n",
      "\n",
      "[768 rows x 9 columns]\n",
      "------- Age -------\n",
      "     Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
      "0              6      148             72             35      155  33.6   \n",
      "1              1       85             66             29      155  26.6   \n",
      "2              8      183             64             29      155  23.3   \n",
      "3              1       89             66             23       94  28.1   \n",
      "4              0      137             40             35      168  43.1   \n",
      "5              5      116             74             29      155  25.6   \n",
      "6              3       78             50             32       88  31.0   \n",
      "7             10      115             72             29      155  35.3   \n",
      "8              2      197             70             45      543  30.5   \n",
      "9              8      125             96             29      155   0.0   \n",
      "10             4      110             92             29      155  37.6   \n",
      "11            10      168             74             29      155  38.0   \n",
      "12            10      139             80             29      155  27.1   \n",
      "13             1      189             60             23      846  30.1   \n",
      "14             5      166             72             19      175  25.8   \n",
      "15             7      100             72             29      155  30.0   \n",
      "16             0      118             84             47      230  45.8   \n",
      "17             7      107             74             29      155  29.6   \n",
      "18             1      103             30             38       83  43.3   \n",
      "19             1      115             70             30       96  34.6   \n",
      "20             3      126             88             41      235  39.3   \n",
      "21             8       99             84             29      155  35.4   \n",
      "22             7      196             90             29      155  39.8   \n",
      "23             9      119             80             35      155  29.0   \n",
      "24            11      143             94             33      146  36.6   \n",
      "25            10      125             70             26      115  31.1   \n",
      "26             7      147             76             29      155  39.4   \n",
      "27             1       97             66             15      140  23.2   \n",
      "28            13      145             82             19      110  22.2   \n",
      "29             5      117             92             29      155  34.1   \n",
      "..           ...      ...            ...            ...      ...   ...   \n",
      "738            2       99             60             17      160  36.6   \n",
      "739            1      102             74             29      155  39.5   \n",
      "740           11      120             80             37      150  42.3   \n",
      "741            3      102             44             20       94  30.8   \n",
      "742            1      109             58             18      116  28.5   \n",
      "743            9      140             94             29      155  32.7   \n",
      "744           13      153             88             37      140  40.6   \n",
      "745           12      100             84             33      105  30.0   \n",
      "746            1      147             94             41      155  49.3   \n",
      "747            1       81             74             41       57  46.3   \n",
      "748            3      187             70             22      200  36.4   \n",
      "749            6      162             62             29      155  24.3   \n",
      "750            4      136             70             29      155  31.2   \n",
      "751            1      121             78             39       74  39.0   \n",
      "752            3      108             62             24      155  26.0   \n",
      "753            0      181             88             44      510  43.3   \n",
      "754            8      154             78             32      155  32.4   \n",
      "755            1      128             88             39      110  36.5   \n",
      "756            7      137             90             41      155  32.0   \n",
      "757            0      123             72             29      155  36.3   \n",
      "758            1      106             76             29      155  37.5   \n",
      "759            6      190             92             29      155  35.5   \n",
      "760            2       88             58             26       16  28.4   \n",
      "761            9      170             74             31      155  44.0   \n",
      "762            9       89             62             29      155  22.5   \n",
      "763           10      101             76             48      180  32.9   \n",
      "764            2      122             70             27      155  36.8   \n",
      "765            5      121             72             23      112  26.2   \n",
      "766            1      126             60             29      155  30.1   \n",
      "767            1       93             70             31      155  30.4   \n",
      "\n",
      "     DiabetesPedigreeFunction  Age  Outcome  \n",
      "0                       0.627   50        1  \n",
      "1                       0.351   31        0  \n",
      "2                       0.672   32        1  \n",
      "3                       0.167   21        0  \n",
      "4                       2.288   33        1  \n",
      "5                       0.201   30        0  \n",
      "6                       0.248   26        1  \n",
      "7                       0.134   29        0  \n",
      "8                       0.158   53        1  \n",
      "9                       0.232   54        1  \n",
      "10                      0.191   30        0  \n",
      "11                      0.537   34        1  \n",
      "12                      1.441   57        0  \n",
      "13                      0.398   59        1  \n",
      "14                      0.587   51        1  \n",
      "15                      0.484   32        1  \n",
      "16                      0.551   31        1  \n",
      "17                      0.254   31        1  \n",
      "18                      0.183   33        0  \n",
      "19                      0.529   32        1  \n",
      "20                      0.704   27        0  \n",
      "21                      0.388   50        0  \n",
      "22                      0.451   41        1  \n",
      "23                      0.263   29        1  \n",
      "24                      0.254   51        1  \n",
      "25                      0.205   41        1  \n",
      "26                      0.257   43        1  \n",
      "27                      0.487   22        0  \n",
      "28                      0.245   57        0  \n",
      "29                      0.337   38        0  \n",
      "..                        ...  ...      ...  \n",
      "738                     0.453   21        0  \n",
      "739                     0.293   42        1  \n",
      "740                     0.785   48        1  \n",
      "741                     0.400   26        0  \n",
      "742                     0.219   22        0  \n",
      "743                     0.734   45        1  \n",
      "744                     1.174   39        0  \n",
      "745                     0.488   46        0  \n",
      "746                     0.358   27        1  \n",
      "747                     1.096   32        0  \n",
      "748                     0.408   36        1  \n",
      "749                     0.178   50        1  \n",
      "750                     1.182   22        1  \n",
      "751                     0.261   28        0  \n",
      "752                     0.223   25        0  \n",
      "753                     0.222   26        1  \n",
      "754                     0.443   45        1  \n",
      "755                     1.057   37        1  \n",
      "756                     0.391   39        0  \n",
      "757                     0.258   52        1  \n",
      "758                     0.197   26        0  \n",
      "759                     0.278   66        1  \n",
      "760                     0.766   22        0  \n",
      "761                     0.403   43        1  \n",
      "762                     0.142   33        0  \n",
      "763                     0.171   63        0  \n",
      "764                     0.340   27        0  \n",
      "765                     0.245   30        0  \n",
      "766                     0.349   47        1  \n",
      "767                     0.315   23        0  \n",
      "\n",
      "[768 rows x 9 columns]\n",
      "------- BMI -------\n",
      "     Pregnancies  Glucose  BloodPressure  SkinThickness  Insulin   BMI  \\\n",
      "0              6      148             72             35      155  33.6   \n",
      "1              1       85             66             29      155  26.6   \n",
      "2              8      183             64             29      155  23.3   \n",
      "3              1       89             66             23       94  28.1   \n",
      "4              0      137             40             35      168  43.1   \n",
      "5              5      116             74             29      155  25.6   \n",
      "6              3       78             50             32       88  31.0   \n",
      "7             10      115             72             29      155  35.3   \n",
      "8              2      197             70             45      543  30.5   \n",
      "9              8      125             96             29      155  32.5   \n",
      "10             4      110             92             29      155  37.6   \n",
      "11            10      168             74             29      155  38.0   \n",
      "12            10      139             80             29      155  27.1   \n",
      "13             1      189             60             23      846  30.1   \n",
      "14             5      166             72             19      175  25.8   \n",
      "15             7      100             72             29      155  30.0   \n",
      "16             0      118             84             47      230  45.8   \n",
      "17             7      107             74             29      155  29.6   \n",
      "18             1      103             30             38       83  43.3   \n",
      "19             1      115             70             30       96  34.6   \n",
      "20             3      126             88             41      235  39.3   \n",
      "21             8       99             84             29      155  35.4   \n",
      "22             7      196             90             29      155  39.8   \n",
      "23             9      119             80             35      155  29.0   \n",
      "24            11      143             94             33      146  36.6   \n",
      "25            10      125             70             26      115  31.1   \n",
      "26             7      147             76             29      155  39.4   \n",
      "27             1       97             66             15      140  23.2   \n",
      "28            13      145             82             19      110  22.2   \n",
      "29             5      117             92             29      155  34.1   \n",
      "..           ...      ...            ...            ...      ...   ...   \n",
      "738            2       99             60             17      160  36.6   \n",
      "739            1      102             74             29      155  39.5   \n",
      "740           11      120             80             37      150  42.3   \n",
      "741            3      102             44             20       94  30.8   \n",
      "742            1      109             58             18      116  28.5   \n",
      "743            9      140             94             29      155  32.7   \n",
      "744           13      153             88             37      140  40.6   \n",
      "745           12      100             84             33      105  30.0   \n",
      "746            1      147             94             41      155  49.3   \n",
      "747            1       81             74             41       57  46.3   \n",
      "748            3      187             70             22      200  36.4   \n",
      "749            6      162             62             29      155  24.3   \n",
      "750            4      136             70             29      155  31.2   \n",
      "751            1      121             78             39       74  39.0   \n",
      "752            3      108             62             24      155  26.0   \n",
      "753            0      181             88             44      510  43.3   \n",
      "754            8      154             78             32      155  32.4   \n",
      "755            1      128             88             39      110  36.5   \n",
      "756            7      137             90             41      155  32.0   \n",
      "757            0      123             72             29      155  36.3   \n",
      "758            1      106             76             29      155  37.5   \n",
      "759            6      190             92             29      155  35.5   \n",
      "760            2       88             58             26       16  28.4   \n",
      "761            9      170             74             31      155  44.0   \n",
      "762            9       89             62             29      155  22.5   \n",
      "763           10      101             76             48      180  32.9   \n",
      "764            2      122             70             27      155  36.8   \n",
      "765            5      121             72             23      112  26.2   \n",
      "766            1      126             60             29      155  30.1   \n",
      "767            1       93             70             31      155  30.4   \n",
      "\n",
      "     DiabetesPedigreeFunction  Age  Outcome  \n",
      "0                       0.627   50        1  \n",
      "1                       0.351   31        0  \n",
      "2                       0.672   32        1  \n",
      "3                       0.167   21        0  \n",
      "4                       2.288   33        1  \n",
      "5                       0.201   30        0  \n",
      "6                       0.248   26        1  \n",
      "7                       0.134   29        0  \n",
      "8                       0.158   53        1  \n",
      "9                       0.232   54        1  \n",
      "10                      0.191   30        0  \n",
      "11                      0.537   34        1  \n",
      "12                      1.441   57        0  \n",
      "13                      0.398   59        1  \n",
      "14                      0.587   51        1  \n",
      "15                      0.484   32        1  \n",
      "16                      0.551   31        1  \n",
      "17                      0.254   31        1  \n",
      "18                      0.183   33        0  \n",
      "19                      0.529   32        1  \n",
      "20                      0.704   27        0  \n",
      "21                      0.388   50        0  \n",
      "22                      0.451   41        1  \n",
      "23                      0.263   29        1  \n",
      "24                      0.254   51        1  \n",
      "25                      0.205   41        1  \n",
      "26                      0.257   43        1  \n",
      "27                      0.487   22        0  \n",
      "28                      0.245   57        0  \n",
      "29                      0.337   38        0  \n",
      "..                        ...  ...      ...  \n",
      "738                     0.453   21        0  \n",
      "739                     0.293   42        1  \n",
      "740                     0.785   48        1  \n",
      "741                     0.400   26        0  \n",
      "742                     0.219   22        0  \n",
      "743                     0.734   45        1  \n",
      "744                     1.174   39        0  \n",
      "745                     0.488   46        0  \n",
      "746                     0.358   27        1  \n",
      "747                     1.096   32        0  \n",
      "748                     0.408   36        1  \n",
      "749                     0.178   50        1  \n",
      "750                     1.182   22        1  \n",
      "751                     0.261   28        0  \n",
      "752                     0.223   25        0  \n",
      "753                     0.222   26        1  \n",
      "754                     0.443   45        1  \n",
      "755                     1.057   37        1  \n",
      "756                     0.391   39        0  \n",
      "757                     0.258   52        1  \n",
      "758                     0.197   26        0  \n",
      "759                     0.278   66        1  \n",
      "760                     0.766   22        0  \n",
      "761                     0.403   43        1  \n",
      "762                     0.142   33        0  \n",
      "763                     0.171   63        0  \n",
      "764                     0.340   27        0  \n",
      "765                     0.245   30        0  \n",
      "766                     0.349   47        1  \n",
      "767                     0.315   23        0  \n",
      "\n",
      "[768 rows x 9 columns]\n"
     ]
    }
   ],
   "source": [
    "fill_zeros_df(original_data, ['Glucose', 'SkinThickness', 'Insulin', 'BloodPressure', 'Age', 'BMI'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.3 特征分布分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Pregnancies</th>\n",
       "      <th>Glucose</th>\n",
       "      <th>BloodPressure</th>\n",
       "      <th>SkinThickness</th>\n",
       "      <th>Insulin</th>\n",
       "      <th>BMI</th>\n",
       "      <th>DiabetesPedigreeFunction</th>\n",
       "      <th>Age</th>\n",
       "      <th>Outcome</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.00000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "      <td>768.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>3.845052</td>\n",
       "      <td>121.682292</td>\n",
       "      <td>72.386719</td>\n",
       "      <td>29.108073</td>\n",
       "      <td>155.28125</td>\n",
       "      <td>32.458073</td>\n",
       "      <td>0.471876</td>\n",
       "      <td>33.240885</td>\n",
       "      <td>0.348958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>3.369578</td>\n",
       "      <td>30.435999</td>\n",
       "      <td>12.096642</td>\n",
       "      <td>8.791221</td>\n",
       "      <td>85.02155</td>\n",
       "      <td>6.875153</td>\n",
       "      <td>0.331329</td>\n",
       "      <td>11.760232</td>\n",
       "      <td>0.476951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>44.000000</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>14.00000</td>\n",
       "      <td>18.200000</td>\n",
       "      <td>0.078000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>99.750000</td>\n",
       "      <td>64.000000</td>\n",
       "      <td>25.000000</td>\n",
       "      <td>121.50000</td>\n",
       "      <td>27.500000</td>\n",
       "      <td>0.243750</td>\n",
       "      <td>24.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>117.000000</td>\n",
       "      <td>72.000000</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>155.00000</td>\n",
       "      <td>32.400000</td>\n",
       "      <td>0.372500</td>\n",
       "      <td>29.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>6.000000</td>\n",
       "      <td>140.250000</td>\n",
       "      <td>80.000000</td>\n",
       "      <td>32.000000</td>\n",
       "      <td>155.00000</td>\n",
       "      <td>36.600000</td>\n",
       "      <td>0.626250</td>\n",
       "      <td>41.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>17.000000</td>\n",
       "      <td>199.000000</td>\n",
       "      <td>122.000000</td>\n",
       "      <td>99.000000</td>\n",
       "      <td>846.00000</td>\n",
       "      <td>67.100000</td>\n",
       "      <td>2.420000</td>\n",
       "      <td>81.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Pregnancies     Glucose  BloodPressure  SkinThickness    Insulin  \\\n",
       "count   768.000000  768.000000     768.000000     768.000000  768.00000   \n",
       "mean      3.845052  121.682292      72.386719      29.108073  155.28125   \n",
       "std       3.369578   30.435999      12.096642       8.791221   85.02155   \n",
       "min       0.000000   44.000000      24.000000       7.000000   14.00000   \n",
       "25%       1.000000   99.750000      64.000000      25.000000  121.50000   \n",
       "50%       3.000000  117.000000      72.000000      29.000000  155.00000   \n",
       "75%       6.000000  140.250000      80.000000      32.000000  155.00000   \n",
       "max      17.000000  199.000000     122.000000      99.000000  846.00000   \n",
       "\n",
       "              BMI  DiabetesPedigreeFunction         Age     Outcome  \n",
       "count  768.000000                768.000000  768.000000  768.000000  \n",
       "mean    32.458073                  0.471876   33.240885    0.348958  \n",
       "std      6.875153                  0.331329   11.760232    0.476951  \n",
       "min     18.200000                  0.078000   21.000000    0.000000  \n",
       "25%     27.500000                  0.243750   24.000000    0.000000  \n",
       "50%     32.400000                  0.372500   29.000000    0.000000  \n",
       "75%     36.600000                  0.626250   41.000000    1.000000  \n",
       "max     67.100000                  2.420000   81.000000    1.000000  "
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#对数据值型特征，用常用统计量观察其分布\n",
    "original_data.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 通过直方图来看看Outome的分布,比马印第安人 5 年内糖尿病的发病情况,500人未患病，268人患有糖尿病"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x24616a7d550>"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x24616aa07b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(original_data.Outcome)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Glucose"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过散点图来看看Glucose对Outome的影响,"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nH3m42jstk2dIAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x24616b893c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "plt.scatter(original_data.Outcome,original_data.Glucose)\n",
    "plt.xlabel('Outcome')\n",
    "plt.ylabel('Glucose')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.533157806933\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x24616bc8cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "sns.distplot(original_data.Glucose,bins=50,kde=True)\n",
    "print(original_data.Glucose.skew())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### BMI "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2461683e438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "plt.scatter(original_data.Outcome,original_data.BMI)\n",
    "plt.xlabel('Outcome')\n",
    "plt.ylabel('BMI')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.597985632698\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nIiIiEgX/PzsGCjgYdhBSAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x246169a5518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "sns.distplot(original_data.BMI,bins=50,kde=True)\n",
    "print(original_data.BMI.skew())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n6C31LKx77x4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x246165ee550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10,5))\n",
    "plt.scatter(original_data.Outcome,original_data.Age)\n",
    "plt.xlabel('Outcome')\n",
    "plt.ylabel('Age')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.4 相关性分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nxxx36rmVDoUqUVNTk1+eeUQO+v6hGVM/NtfcdXn6930wr748fOqY+pFjctIvTs/eP/1Bi33fHDM+\n++xwYCZPmpwOHTvkxv5Xp//dD+bNMePm8iyYV9TU1OQnpx2Uk/Y4IePrx+fc28/PY/f8J28MeWPq\nmGGDX8nh2x2WSR99nK333Cb7HLdvzjn47CTJzX+8Ke06tMtWe2z9WX+C+UBNTU1OPfu47LHLARk9\nakxu63dt+t31QIa89OrUMbvt+d28/dY72Xjd7bPDzlvnlycdmkP2PzrbfWfLtG3bJltttEvad2if\nfg/fnNv++a9MmjQpp514Xp575oUssGDH3HHvdXmw/yMtjknrVVNTk9+cd2K+t9O+GTVyTPref2Pu\n6nNfXn7plalj9tj7e3nrrXey3ppbZqddts2Jvz4y/7fvYUmS4cNez7c3mvmNCwf+35EZNPC5uTIP\n5h01NTX5/e9Py3bb7ZERI+rz0EO354477smLLw6ZOmaffXbLW2+9nVVW+Va+970dctppx2avvQ7O\nuHETsssuP059/ZisvPKKuf32v2W55dZLkvzud5elf/9H0qZNm9x117XZcstN0rfvAxWaJXNTTU1N\nfnv+Kdlx+70ycuToDPj3relzZ7+8+OLQqWN+tM/389Zbb2f1r307u+66fU497Zf50d4/y/ODX8pG\nG+6YhoaGdO22RB59tE/63HlvGhqa7lT+6cH75qUXh2ahhRes1PSopJqadPnVwRm533GZPGZclr7+\ngrx//6OZ9MrrLYa9968BGXvaJTM9ROef750PHn92bkRLFaipqcl+p/4kp+5xUiaMHp8zbzs3T/R7\nLCNaXPMNyzHbH55JH03Klntunb2O3SfnH3JOPv7w41x42O8yenh9FuvSKWfdeV6eHjAwH7zzfgVn\nBHwelTr/mw/LslyjLMtVk0xK0uK2naLJPPlvLKEzd62zxteyyMILVToMqsiqa341bwwbkZGvj8qU\nyVNy9y33ZpOtNmoxpv6N0RnywitpbCxbbJ8yeUomT5qcJGnbrk2KophrcTNvWmGNFTN6eH3GvD4m\nUyZPyb9vH5D1tly/xZhnH3k2kz76OEny0sCX0rn74lOfe+ahQfnwvQ/naszMe9ZYa9UMH/Z63nht\nZCZPnpLbb74rW2zz7RZjtthmk/zzutuSJH1uuycbfuvrSZKyLNOxY8fU1tamfft2mTxpct59972M\n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\njBxZn169ekx93LNn99TXj/3MMZ+cUxMmvNU8vluuv/6y7LffYXn11dda7HfJJb/J0KHDc9FFfw7z\nj5Ej69Or56fL7fXs2W3qMn2fjhk9dUxtbW0Wmeac+sRLL72SD97/ICuv8pWsv/7a2Xa7zTP4hX/n\niqsuzMYbb5DL/3z+nJ8M85QpY8alrtunn8/rui6eKdN9Pm98692Uk5uW1X77hrvSbpWmr3/ar/HV\nLPrDHdO735VZ4uj9s9B3Nsvih+8794JnnjRh9PgWS2h36t45E8bMeM33tQ1Xz3cP+V7O2v/0Ftd8\nHRbskGP/+qtce+7fMmTgy3MlZuC/J6nzv/mkp84aZVn+rCzLT+rzp73FtEhyzzTjVi7Lcr/M9H7X\nFj6e5veGJHVFUWySZPMk32iuvBmYpH3zmMnlp2n0hiR1sziHIsmZ08S3fFmWfy7L8uUka6cpuXNm\nURQnzuLxgNlg8NMvZqlle6XHUt1T16YuW+20WR7o++As7dul+xJp175tkmShRRbKGut+LcOHuqN0\nfjZk0Mvp3rtHuizZNXVt6rLRDt/KY/f8p8WY3qssm4POPCSn73dq3h4/Qx4fMmjg4PReduksuVTP\ntGlTlx123jr3/OuBFmP63fVAdtl9xyTJtjtukYf//ViSZOSI+mywUdOa3h06dsia66yWV4Y03ddy\n9gW/ztCXh+XyS6+ee5NhnjDwqWfTe7llstTSvdKmTZvs9N3tclef+1qMuavPfdnthzsnSXbYaas8\nOKDpvqnOnRdLTU3TpczSy/TKssstk9eGv5Ha2tqpy7PV1dVly603yQsvDJmLs6KSnnhiUJZfvneW\nWWbJtGnTJt/73g654457Woy54457sueeuyZJvvvdbfPAAw8naVpa7eabr8ivfnVWHnnkiRb7nHzy\nkVl44YVy5JEnz5V5MO948slnstzyy2Tp5tepXXfdIX3u7NdiTJ8+/bLHnrskSXbeeZupPZiWXrpX\namtrkyRLLtkzK6y4bF5/bUROPumcfGWFDbLKVzfKPnv/LP37P5z99zts7k6Mivvo2ZfSZukeqevZ\nNWlTl4W33Tjv3/9oizG1S3Sa+vuCm66fSa82XdONPvrsDNts7wzb/Ed58+zL8+6t92bcb/86V+Nn\n3jN00JB07909XZbskro2ddlwh43yxD2PtRizzCq9c8CZB+Ws/U7PO9Nc89W1qctRlx2b/v+8P4/2\n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\nWWbJ9Oq1WDp16pRvfGP73HDjbW3G3HDjbdljj52TJDvttHXuvOvej7d/4xvbZ4455kivXotlmWWW\nzEMPT1pm7fzzfpnnnn8pv/7NeR+f5+mnn0+Pnqtkmd5rZ5nea2fo0BFZY60tMmrUmNDxDX/ilSy0\nZLcssNik16gVt107L/Rv+3lowV6fLEm67MZ98saQScuRztV5nnzrwiNy++lX5PVHBs3Uupl1PT/w\n+fRcctF0X6xbmjo1ZZPtN8q9t933X51jkx02yh2WXoO6YPm1z9AahjQmGZdknsl23Z1ktyT/bF1e\nbfEkL0zH9jtLKSsmWfm/LOWFJAuXUtapqur+1uXYeid5LsliVVXd2doP51tJ5i2lLFRV1VNJniql\nrJNkuSSPJvlyKWXOTAp0Nklyz6efqKqqt0spg0spO1dVdVXrLKWVq6p64r+sebbS0tyS844/Nydd\ncnIaGhtyxxX98/qg1/Ktw3bLS0+9mIf6P5S9jt07c88zV448Z9Kya2OHj8kp+/w0SfKzv/08PZfu\nmbm+MFf+9OBF+d2PfpvH757WKn3MDlqaW/LHE/6Q4y4+KQ2NDfnnlbdn6IuvZ5fDvpWXn3wpj9z+\nUPY4Zs/MNc/cOfz3P04y6Z76+b6nZJ1t1s/ya66QeReYL33/b9LKiWcf8ZsMeXZwLS+JWdyPTjwt\nDz/+ZN566+1sssPuOXCfPbLTpxoDw3+0NLfknOPPSb+/9EtjY2Nuu+K2vDbotexx+B4Z9OSgPNj/\nwfRepXeOP//4zDv/vFlr07Wy+2G7Z/9N909jp8accfUZSZL33n0vvzjkF2lpbqnxFVELzc3NOe7I\nU3Lp1eelobEhV/z1mgx6/uUccfTBeWLgM+l/8525/JKr89tzT8s9j96ct94cnwP3OeLj49ded/WM\nGD6qzfJq3Xt0zQ+O2C8vvvBybh3wtyTJhedfmssuuXqK56dja2luyd9OuCAHXnxMGhob8sCVd2Xk\ni0Oz1aE757WnXsnTtz+a7Y/ePXPMM1f2+v2hSZI3h43N+d/9RQbe9EB6r7tijrr1jKSq8tyAgXn6\nDp/NZwfNzc35wQ+Py03/uDSNDQ256M9X5NlnB+WkE4/II48+kRtv7J8LLrw8f77ot3n+2Xvy5ptv\n5Vu7H5gkefbZQfnb327IU0/cmYnNzTnkB8empaUl6627RvbY/f/y5FPP5pGHJwVExx9/Wm6+5Z+1\nvFRqrKW5JTedcFH2uPjHKY0NefzKARnz4rBsdNhOGf7k4Lxw+2NZ8zubZ6n1V0zLhOa8//a/c81h\n5yZJ1vzO5lmwV9ds+P0ds+H3d0ySXLLHafn3ZOE0s5/m5pb8+rizcsalP09DQ0NuuuLmDBn0avY+\nYs+88MQLubf//VlulS+l359+kvnmnzfrbrZO9j78O/nOxvskSbr17JpFui+Sgff79R/Ug6LPQlul\nlOZ80temJDmmqqp/lFJ6JbmxqqoVSylzJTk3k2bHTExyWGuwMq3tcye5MMmXkwxMskySQ6qqeqSU\nMiTJ6lVVfdIRfVId71ZVNe9kj/sk+W2S+TMpjPt1kouS3Nm6rST5S1VVp5VSzkqyUSYt4fZskj1b\ne+6cnmT7JC8m+SjJ9VVVXfTpGkopSyY5J5OWXeuU5PKqqk7+rH+37Rffxo3EDNOpmETIjHXZo7+u\ndQl0QNutelCtS6ADeXI2X8qWGWun+VesdQl0ML8fPsX3AeH/y3Hd+9a6BDqYf04cWesS6GDuHnbH\nZ63IxH/p38fu3CF/d/yFU66qyX1ips6nVFXVOI3tQzKpr02qqvogyZ5TGTOt7e8n2XUa5+01je3z\nfurxwEzqzfNp60/l2O9P45xHJjny82qoqmpwJvUTAgAAAACA/1nVYnWGGcnX4QEAAAAAAOqAUAcA\nAAAAAKAOCHUAAAAAAADqgJ46AAAAAABA+2ipal1Bh2KmDgAAAAAAQB0Q6gAAAAAAANQBoQ4AAAAA\nAEAd0FMHAAAAAABoH3rqzFBm6gAAAAAAANQBoQ4AAAAAAEAdEOoAAAAAAADUAaEOAAAAAABAHWiq\ndQEAAAAAAEAHVbXUuoIOxUwdAAAAAACAOiDUAQAAAAAAqANCHQAAAAAAgDqgpw4AAAAAANA+Wqpa\nV9ChmKkDAAAAAABQB4Q6AAAAAAAAdUCoAwAAAAAAUAf01AEAAAAAANpFpafODGWmDgAAAAAAQB0Q\n6gAAAAAAANQBoQ4AAAAAAEAd0FMHAAAAAABoH3rqzFBm6gAAAAAAANQBoQ4AAAAAAEAdEOoAAAAA\nAADUAaEOAAAAAABAHWiqdQEAAAAAAEAH1dJS6wo6FDN1AAAAAAAA6oBQBwAAAAAAoA4IdQAAAAAA\nAOqAnjoAAAAAAED7aKlqXUGHYqYOAAAAAABAHRDqAAAAAAAA1AGhDgAAAAAAQB3QUwcAAAAAAGgf\neurMUGbqAAAAAAAA1AGhDgAAAAAAQB0Q6gAAAAAAANQBPXUAAAAAAIB2UVV66sxIZuoAAAAAAADU\nAaEOAAAAAABAHRDqAAAAAAAA1AGhDgAAAAAAQB1oqnUBAAAAAABAB9VS1bqCDsVMHQAAAAAAgDog\n1AEAAAAAAKgDQh0AAAAAAIA6oKcOAAAAAADQPvTUmaHM1AEAAAAAAKgDQh0AAAAAAIA6INQBAAAA\nAACoA3rqAAAAAAAA7aLSU2eGKlXlH5T/f0sstLIbiRnmy/MsWusSAD7T9Y+fXesS6ID6rrJvrUug\ng7hgvjlrXQIdzLbjxtS6BDqYuRvnqHUJdDBLz9ml1iXQwfz91etLrWvoSMbvtWmH/N3x/BfeXpP7\nxPJrAAAAAAAAdUCoAwAAAAAAUAf01AEAAAAAANqHnjozlJk6AAAAAAAAdUCoAwAAAAAAUAeEOgAA\nAAAAAHVAqAMAAAAAAFAHmmpdAAAAAAAA0EG11LqAjsVMHQAAAAAAgDog1AEAAAAAAKgDQh0AAAAA\nAIA6oKcOAAAAAADQLqqWqtYldChm6gAAAAAAANQBoQ4AAAAAAEAdEOoAAAAAAADUAT11AAAAAACA\n9qGnzgxlpg4AAAAAAEAdEOoAAAAAAADUAaEOAAAAAABAHdBTBwAAAAAAaB8ttS6gYzFTBwAAAAAA\noA4IdQAAAAAAAOqAUAcAAAAAAKAOCHUAAAAAAADqQFOtCwAAAAAAADqmqqWqdQkdipk6AAAAAAAA\ndUCoAwAAAAAAUAeEOgAAAAAAAHVATx0AAAAAAKB9tNS6gI7FTB0AAAAAAIA6INQBAAAAAACoA0Id\nAAAAAACAOqCnDgAAAAAA0C6qlqrWJXQoZuoAAAAAAADUAaEOAAAAAABAHRDqAAAAAAAA1AE9dQAA\nAAAAgPbRUusCOhYzdQAAAAAAAOqAUAcAAAAAAKAOCHUAAAAAAADqgFAHAAAAAACgDjTVugAAAAAA\nAKBjqlpqXUHHYqYOAAAAAABAHRDqAAAAAAAA1AGhDgAAAAAAQB3QUwcAAAAAAGgfeurMUGbqAAAA\nAAAA1AGhDgAAAAAAQB0Q6gAAAAAAANQBPXUAAAAAAIB2UempM0OZqQMAAAAAAFAHhDoAAAAAAAB1\nQKgDAAAAAABQB/TUAQAAAAAA2oeeOjOUmToAAAAAAAB1QKgD/x823Hi9/PPB6zPg4RtzwA/2nmL/\nHHN0yu/+eHoGPHxjrr3tr+m5WI8kSVNTU355dr/c+q+rc8f91+bAH+6TJOneo2suv/aPueP+a9P/\n3r9nr+/tNlOvh1nLan1Xy/l3nZ8//etP2fnAnafYv+JaK+asm87KjYNvzPpbrd9m395H751zbj8n\n59x+TjbYdoOZVTKzMPcTM9txPzszG2y9a3bYff9al0KdWKvvGrns7j/ninsuye4HfXOK/austXIu\nuOUPGfBq//Tduu1rUdcei+RXl56ev951Yf5y5wXp1rPrzCqbWdg866+WJW8+P0ve+qcs+N0p3/s6\n77hplr7v8ixxze+yxDW/y/z/t0Wb/Q1fmCdLDbgkixx/wMwqmTry1Y3XyS33X53+D12T7x3ynSn2\nr77Oqrnmjr/k2REPZIttN6lBhczq1t1orVx3z2W54f4rs/fBe0yx/ytr98nlt12YR4fenU232ejj\n7d17dstlt16QK26/KH8f8Jfs/O0dZmbZzMJW3fArOeufv8/ZA/6QHQ/YaYr92+67fX5z++9y5i2/\nzUmX/jQLL7rwx/uO//NJueTJS3PMBcfPzJKB/5FQZxpKKceWUp4ppTxZShlYSlmrlDKklNJlKmPv\n+5xzXdN6jpdKKeNb/z6wlLLuZ5xzu1LKUZ9xzl6llKf/t6tjRmhoaMhPTz8m3/nGAdl03R2y3de/\nlmW/tFSbMbvs/vWMf+vtbLjGNvnTOZfkqBN/mCTZevvNM8ccnbLFV3fK1hvvmm995//Sc7EeaW5u\nTr8TfplN1tkhO2yxe769zy5TnJPZQ0NDQw7qd1CO//bx2W/j/dJ3+75ZfNnF24wZPWx0fnnYL3Pn\ntXe22b7Gxmtk6RWXzkFbHJQfbvvD7LT/Tpln3nlmZvnMYtxP1MIOW22Wc8/sV+syqBMNDQ05/JQf\n5PDdj8puG+2VTXfYOL2WXaLNmFHDRuWUQ3+e/tfeMcXxx/3mqFx6zhXZre9e+e7WB+bNsW/NrNKZ\nVTU0pOsJB2Xod4/P4G32y3xb980cSy8+xbB3bh6QV3c8OK/ueHDG/+3WNvu6/GCPvP/wUzOrYupI\nQ0NDTjztx/nurodkq/V2zjY7bpGley/ZZsyIoSNz1PdPyo1X3zqNszA7a2hoyDGnHpEDv3V4dtzg\nW9lyx02zVO9ebcaMHDYyx/+gX26+pn+b7WNGjc23t90vu2y6Z3b72nez1/f3yMJdp/i1ErOZhoaG\nfPen+6Xfd36SH2x6UL663QbpuexibcYMfuaV/Gibw3LYlofk/pvuy7eP3vPjfdee9/f85tBfzeSq\ngf+VUGcqSinrJNkmyVeqqlo5yaZJXp/W+Kqq1v2s81VVtWNVVX2S7JvkX1VV9Wn9M80wqKqq66uq\nOu1/uwJmhj5fWTFDBr+W118dlgkTJuaGa27JZl/bqM2Yzb7WN1dffn2S5Kbr+2e9DdZKklRVlXnm\nmSeNjY2Za645M+GjCXnnnXczetTYPP3kc0mSf7/7Xl56cXC6dl9k5l4Ys4TefXpn+JDhGfnayEyc\nMDEDrh+QtTdfu82Y0UNHZ8jzQ1JVVZvtiy+7eJ568Km0NLfkw/c/zOBnB2e1vqvNzPKZxbifqIXV\n+6yU+TvPV+syqBPLr7pchg4ZluGvjcjECRNzx3X/zFe3aPsRe+TQUXn5uVdStbRdkLvXskuksakx\nD//r0STJ++99kA8/+HCm1c6saa6Ve2fCa8MzYejIZMLEvHPTgMy7ydqff2CrOVdYJo0LfTH/vvex\ndqySerXyV1bIq0Ne//hnwX9ce1s2/dqGbcYMe31EXnj2pbRUmggwpRVX/XJeHzw0w14bnokTJuaW\na29P3y2+2mbM8NdH5sXnXk7Lp973Jk6YmAkfTUiSzDFnpzSUMtPqZta1TJ9lM2LIiIx6fVQmTpiY\ne274V9bcbK02Y56+/6l89MFHSZJBj7+Qhbp/EgY+de+Tef/f78/UmoH/nVBn6ronGVtV1YdJUlXV\n2Kqqhv9nZyll7lLKLaWU77Y+frf1v31LKXeVUv5WSnm+lPLXUqbr3fX7pZTHSilPlVKWaz3XnqWU\n37X+vWvrbJ8nWv+0+Qm3lLJUKeXxUsoarcf9vbW+F0spp082bvNSyv2tz3VVKWXe1u2nlVKebZ2V\ndEbrtp1LKU+3Pt/d/z//mB1Vt+5dM2LYqI8fjxg+Kt0+FcB06941w4dPGtPc3Jx33n43X1xwgdx0\nff+89957efjZO3L/E7flvLP/nPFvvd3m2J6L9cgKKy2XgY/6duDsqEu3LhkzfMzHj8eOGJuFui00\nXccOfm5wVu+7euaca850/mLnrLzOylm4x8KffyAdlvsJmNUt3K1LRg8f/fHj0SPGZuFu0/das9hS\nPfPu2+/mZ+f/JBfe+occdNx+aWjwY87srqlrl0wY8cl738SRY9PUdcr3vvk2Wz+9rvt9evzm2DR1\na/3lVilZ5MffzZhf/HFmlUud6dp9kYyc7GfBkcNH+zIe/5VFui+ckcM/uYdGjxiTrt2n/zN21x6L\n5Kp/XpxbH702F579l4wZNbY9yqSOLNRtoYwb8cl9MG7E2Cz4GT/zbbLLZnnsrkdnRmmQJKlaOuaf\nWmmq3VPP0m5LckIpZVCS25NcUVXVgNZ98ya5PMnFVVVdPJVjV02yQpLhSe5Nsl6Sez7n+cZWVfWV\nUsqBSY7IpBk9k/ttkgFVVe1YSmlsreGLSVJK+VJrPXtVVTWwlLJCkj6tdXyY5IVSyllJ3k9yXJJN\nq6r6dynlx0kOaw2OdkyyXFVVVSllgdbnPCHJFlVVDZtsWxullO8l+V6SLDjPopl3rgU/5zI7mKnE\ndZ/+hvvUIr2qqtLnKyumpbkla66waeZfoHOu+sdFuWfAA3n91WFJknm+MHfOvejMnHzs6Xn3nX+3\nR/XM6qYWB1dT2TYVj939WHqv0ju/vPaXGT9ufJ5/7Pk0T2yeoeVRZ9xPwCxuat+D+vTnqmlpbGrM\nKmuulL222C+jho3KyeeckK2+sUVuvPzmGV0m9e5Tt9S7dz6Yd24ckGrChMy/y1bpdtrhGbrn0Vng\nW9vk3wMezsSRfknK1E3r5zyYXv+/99Co4aOz88bfzsJdu+TXF52W/jfcmTfGvjkDK6T+TPWmmurI\nDXbsm2VWWibH7XJ0O9cEtBdfYZuKqqreTbJaJgUWY5JcUUrZs3X3dUkunEagkyQPVVU1tKqqliQD\nk/Sajqf8e+t/H53G+I2TnNNaW3NVVeNbty/cWs/uVVUNnGz8HVVVja+q6oMkzyZZIsnaSb6c5N5S\nysAk32nd/naSD5L8sZTy9STvtZ7j3iQXtc5Gapxa0VVVnVdV1epVVa0+2wU6SUYOH5Xui37ShLd7\nj64ZNXJMmzEjho9Kjx6TxjQ2Nma+zvPmrTfHZ/v/2yp3/fPeTJw4MePGvpFHH3w8K/dZIUnS1NSU\ncy86M9f+7R+55cYp14xn9jB2xNg2syG6dO+ScaPGTffxl591eQ7e8uAcu9uxSUmGDx7++QfRYbmf\ngFnd6BFjskiPT77lvkj3Lhk7nd86HjNiTAY9/VKGvzYizc0tufvWe9N7pWXbq1TqxMRRY9Npsm+9\nN3Xrkomj2773tbz1TqoJk5YwGn/VLZlrhUn3zdx9ls8Cu22bpe64KAsfuW86b79puhy218wrnlne\nyOGj022ynwW79Vgkoz/1syB8llHDx6Rbj0/uoUW6L5zR/0OQPGbU2Lz8wuB8Ze0+M7I86tC4kWPb\nLKe2UPcueWPUG1OMW3m9VfJ/B++cU/ftl4kfTZyZJQIzkFBnGlrDk7uqqjoxycFJdmrddW+Sr33G\nsmqTL+DdnOmbDfWfY6Z3/H+Mz6ReP+tNRw0lSf/J+vl8uaqqfaqqmphkzSRXJ9khyS1JUlXV/pk0\ns2exJANLKdO3Ts9s5InHn8mSSy2RxRZfNJ06NWXbHbdM/5vvajPm9lvuyk67bpck2Wq7zXLfvx5K\nkgwbOiLrfnXNJMnc88ydVVdfOS+/ODhJcvpvf5KXBg3OH8+5ZOZdDLOcQU8MSo9ePdJ1sa5p6tSU\nDbfbMA/0f2C6jm1oaMh8C0zqY9FruV5Zcvkl8+jdplXPztxPwKzu+YHPp+eSi6b7Yt3S1Kkpm2y/\nce657f7pOva5gS9kvgXmywILzp8kWW29VTNk0KvtWS514IOnBqXTEj3SadGuSaemzLfVhnn3n23f\n+xoX/uLHf59347Xz0cuT2qiO+NHpeWXj7+SVTfbMmNP/mLevuz1jz7xwZpbPLO6px59NryUXS8/F\ne6RTp6ZsvcPmueMWq5Yz/Z4Z+FwWX6pnFl28e5o6NWXLHTbNgNs+b5GXSRbpvnDmnGuOJMl888+X\nPmuslCEved+b3b30xIvpvmSPLNL6M9/62341D/d/sM2YJVdYKvufemBO3adfxo8bP40zAfXA8mtT\n0bqkWUtVVS+2buqT5NUkK2XSsmTHJ/l9kgNmUkl3tD7Xr1uXX/tC6/aPMimIubWU8m5VVZd+xjke\nSHJ2KWWZqqpeKqXMk6RnJi0TN09VVTeVUh5I8lKSlFKWrqrqwSQPllK2zaRwZ/q/1j0baG5uzgk/\n/lkuvuqcNDY25spLr82LL7ycw446ME8OfDa333JXrvjLNfnVOT/LgIdvzFtvjc/B+x6ZJLn4T5fn\njLN+mv73/j2llFx16XV5/tkXs/paq2anXbbNc88Myk13XZkk+UW/3+bO26fvwx0dR0tzS845/pz0\n+0u/NDY25rYrbstrg17LHofvkUFPDsqD/R9M71V65/jzj8+888+btTZdK7sftnv233T/NHZqzBlX\nn5Ekee/d9/KLQ36RlmYNWmdn7idq4UcnnpaHH38yb731djbZYfccuM8e2WnbLWpdFrOo5uaW/Oq4\n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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x24616b75e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# encoding=utf-8\n",
    "original_data_corr = original_data.corr().abs()  # 通常认为相关系数的绝对值大于0.5的为强相关\n",
    "plt.subplots(figsize=(30, 20))\n",
    "sns.heatmap(original_data_corr, annot=True)\n",
    "sns.heatmap(original_data_corr, mask=original_data_corr<1, cbar=False)\n",
    "plt.savefig('diabetes_corr.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Outcome                     1.000000\n",
      "Glucose                     0.492911\n",
      "BMI                         0.311893\n",
      "Age                         0.238356\n",
      "Pregnancies                 0.221898\n",
      "SkinThickness               0.214873\n",
      "Insulin                     0.214278\n",
      "DiabetesPedigreeFunction    0.173844\n",
      "BloodPressure               0.165723\n",
      "Name: Outcome, dtype: float64 \n",
      "\n"
     ]
    }
   ],
   "source": [
    "print (original_data_corr['Outcome'].sort_values(ascending=False)[:10], '\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "scrolled": true
   },
   "source": [
    "可见，能影响糖尿病患病几率的因素有Glucose、BMI、Age、Pregnancies"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3 数据分离--随机选择 20%的数据作为测试集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#从原始数据中分离输入特征X和输出y\n",
    "y = original_data['Outcome'].values\n",
    "X = original_data.drop('Outcome', axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [],
   "source": [
    "#将数据分割训练数据和测试数据\n",
    "from sklearn.cross_validation import train_test_split\n",
    "\n",
    "#随机采样20%的数据构建测试样本，其余作为训练样本\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 33, test_size = 0.2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 4. 建模 + 训练"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.1 default  Logistic Regression 模型训练"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "lr= LogisticRegression()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "logloss of each fold is:  [ 0.4913378   0.46886015  0.53849425  0.45654316  0.48444548]\n",
      "cv logloss is: 0.487936168004\n"
     ]
    }
   ],
   "source": [
    "from sklearn.cross_validation import cross_val_score\n",
    "loss = cross_val_score(lr, X_train, y_train, cv=5, scoring='neg_log_loss')\n",
    "print('logloss of each fold is: ',-loss)\n",
    "print('cv logloss is:', -loss.mean())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2 正则化的 Logistic Regression及参数调优（GridSearchCV）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "logistic回归的需要调整超参数有：C（正则系数，一般在log域（取log后的值）均匀设置候选参数）和正则函数penalty（L2/L1） \n",
    "目标函数为：J = sum(logloss(f(xi), yi)) + C* penalty \n",
    "\n",
    "在sklearn框架下，不同学习器的参数调整步骤相同：\n",
    "设置候选参数集合\n",
    "调用GridSearchCV\n",
    "调用fit"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
       "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
       "          verbose=0, warm_start=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "#需要调优的参数\n",
    "# 请尝试将L1正则和L2正则分开，并配合合适的优化求解算法（slover）\n",
    "#tuned_parameters = {'penalty':['l1','l2'],\n",
    "#                   'C': [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "#                   }\n",
    "penaltys = ['l1','l2']\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "tuned_parameters = dict(penalty = penaltys, C = Cs)\n",
    "\n",
    "lr_penalty= LogisticRegression()\n",
    "grid= GridSearchCV(lr_penalty, tuned_parameters,cv=5, scoring='neg_log_loss')\n",
    "grid.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'mean_fit_time': array([ 0.00140796,  0.00119915,  0.00260553,  0.00120292,  0.00361152,\n",
       "         0.00220571,  0.00642195,  0.00260339,  0.00662389,  0.00301456,\n",
       "         0.0068162 ,  0.00280604,  0.00581732,  0.00300765]),\n",
       " 'mean_score_time': array([ 0.00079947,  0.00099616,  0.00080786,  0.00080333,  0.00059934,\n",
       "         0.00060148,  0.00040455,  0.00060129,  0.00060053,  0.0006032 ,\n",
       "         0.0007957 ,  0.00060515,  0.00099549,  0.00040493]),\n",
       " 'mean_test_score': array([-0.65548391, -0.58963134, -0.5966137 , -0.58337499, -0.53062709,\n",
       "        -0.55499015, -0.47149539, -0.48799852, -0.47106007, -0.47096687,\n",
       "        -0.47112075, -0.4711648 , -0.47113054, -0.47122521]),\n",
       " 'mean_train_score': array([-0.65449443, -0.58042731, -0.58992191, -0.57125425, -0.5186189 ,\n",
       "        -0.54209511, -0.45563103, -0.47432752, -0.45440923, -0.45511547,\n",
       "        -0.45439487, -0.45441247, -0.45439482, -0.45439645]),\n",
       " 'param_C': masked_array(data = [0.001 0.001 0.01 0.01 0.1 0.1 1 1 10 10 100 100 1000 1000],\n",
       "              mask = [False False False False False False False False False False False False\n",
       "  False False],\n",
       "        fill_value = ?),\n",
       " 'param_penalty': masked_array(data = ['l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2' 'l1' 'l2'],\n",
       "              mask = [False False False False False False False False False False False False\n",
       "  False False],\n",
       "        fill_value = ?),\n",
       " 'params': [{'C': 0.001, 'penalty': 'l1'},\n",
       "  {'C': 0.001, 'penalty': 'l2'},\n",
       "  {'C': 0.01, 'penalty': 'l1'},\n",
       "  {'C': 0.01, 'penalty': 'l2'},\n",
       "  {'C': 0.1, 'penalty': 'l1'},\n",
       "  {'C': 0.1, 'penalty': 'l2'},\n",
       "  {'C': 1, 'penalty': 'l1'},\n",
       "  {'C': 1, 'penalty': 'l2'},\n",
       "  {'C': 10, 'penalty': 'l1'},\n",
       "  {'C': 10, 'penalty': 'l2'},\n",
       "  {'C': 100, 'penalty': 'l1'},\n",
       "  {'C': 100, 'penalty': 'l2'},\n",
       "  {'C': 1000, 'penalty': 'l1'},\n",
       "  {'C': 1000, 'penalty': 'l2'}],\n",
       " 'rank_test_score': array([14, 12, 13, 11,  9, 10,  7,  8,  2,  1,  3,  5,  4,  6]),\n",
       " 'split0_test_score': array([-0.65371125, -0.61690622, -0.63206008, -0.60227873, -0.54756722,\n",
       "        -0.5699804 , -0.4632814 , -0.4913378 , -0.45924188, -0.4620053 ,\n",
       "        -0.45893674, -0.45959175, -0.458934  , -0.45916443]),\n",
       " 'split0_train_score': array([-0.65005584, -0.57585743, -0.58436725, -0.56782713, -0.52000177,\n",
       "        -0.53964275, -0.45814415, -0.47556588, -0.45695537, -0.45757084,\n",
       "        -0.45694203, -0.45698833, -0.45694203, -0.45694964]),\n",
       " 'split1_test_score': array([-0.65461694, -0.55300108, -0.56730867, -0.53690352, -0.49380233,\n",
       "        -0.51236148, -0.46829244, -0.46886015, -0.47225348, -0.46892046,\n",
       "        -0.47279274, -0.47235502, -0.47275424, -0.47282014]),\n",
       " 'split1_train_score': array([-0.65763841, -0.59195709, -0.60201993, -0.58408707, -0.51945728,\n",
       "        -0.55133481, -0.45624506, -0.47650018, -0.45499003, -0.45574294,\n",
       "        -0.45497568, -0.45498525, -0.454976  , -0.45497554]),\n",
       " 'split2_test_score': array([-0.6578498 , -0.6144054 , -0.61516825, -0.62211973, -0.56860276,\n",
       "        -0.59904235, -0.5262983 , -0.53849425, -0.53043741, -0.52871053,\n",
       "        -0.53095615, -0.5307006 , -0.53106645, -0.53105498]),\n",
       " 'split2_train_score': array([-0.65341661, -0.57160053, -0.57992872, -0.56028049, -0.50756628,\n",
       "        -0.53070497, -0.44168138, -0.46102071, -0.44038949, -0.44117206,\n",
       "        -0.44037476, -0.44038642, -0.44037411, -0.44037418]),\n",
       " 'split3_test_score': array([-0.65478294, -0.57666791, -0.58345297, -0.57408916, -0.5173874 ,\n",
       "        -0.54219193, -0.42567947, -0.45654316, -0.41855298, -0.42234109,\n",
       "        -0.41786321, -0.41842387, -0.4178554 , -0.41802763]),\n",
       " 'split3_train_score': array([-0.65462713, -0.58224217, -0.59144546, -0.57250908, -0.52768585,\n",
       "        -0.54602602, -0.46788155, -0.48425412, -0.46675361, -0.46731753,\n",
       "        -0.46673908, -0.4667501 , -0.4667391 , -0.46674022]),\n",
       " 'split4_test_score': array([-0.6564754 , -0.58682616, -0.58458556, -0.58123728, -0.52548862,\n",
       "        -0.55111719, -0.47363706, -0.48444548, -0.47451187, -0.47254734,\n",
       "        -0.47475049, -0.47444476, -0.47473797, -0.47475313]),\n",
       " 'split4_train_score': array([-0.65673417, -0.58047932, -0.5918482 , -0.57156749, -0.51838335,\n",
       "        -0.54276701, -0.45420299, -0.47429672, -0.45295763, -0.45377398,\n",
       "        -0.45294283, -0.45295225, -0.45294285, -0.45294268]),\n",
       " 'std_fit_time': array([ 0.0008004 ,  0.0004136 ,  0.00048943,  0.00040085,  0.00048811,\n",
       "         0.00040097,  0.00049782,  0.00048835,  0.00047431,  0.00062044,\n",
       "         0.00040054,  0.00040029,  0.00075136,  0.00062564]),\n",
       " 'std_score_time': array([  4.00527925e-04,   1.42105474e-05,   4.04120001e-04,\n",
       "          4.01669423e-04,   4.89379729e-04,   4.91108324e-04,\n",
       "          4.95492374e-04,   4.90952589e-04,   4.90333563e-04,\n",
       "          4.92510879e-04,   3.97928068e-04,   4.94148912e-04,\n",
       "          1.02963707e-05,   4.95970947e-04]),\n",
       " 'std_test_score': array([ 0.00148305,  0.02401948,  0.02362012,  0.02869761,  0.02566291,\n",
       "         0.0288737 ,  0.0321765 ,  0.02802728,  0.03584618,  0.03398998,\n",
       "         0.03624854,  0.03594752,  0.03628689,  0.03621816]),\n",
       " 'std_train_score': array([ 0.00267512,  0.00685606,  0.00752479,  0.00772687,  0.00643491,\n",
       "         0.00688513,  0.00840714,  0.00750818,  0.00846007,  0.00838488,\n",
       "         0.00846022,  0.00846218,  0.00846045,  0.00846121])}"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid.cv_results_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.47096686922\n",
      "{'C': 10, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "# examine the best model\n",
    "print(-grid.best_score_)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x246168c6400>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot CV误差曲线\n",
    "test_means = grid.cv_results_[ 'mean_test_score' ]\n",
    "test_stds = grid.cv_results_[ 'std_test_score' ]\n",
    "train_means = grid.cv_results_[ 'mean_train_score' ]\n",
    "train_stds = grid.cv_results_[ 'std_train_score' ]\n",
    "\n",
    "\n",
    "# plot results\n",
    "n_Cs = len(Cs)\n",
    "number_penaltys = len(penaltys)\n",
    "test_scores = np.array(test_means).reshape(n_Cs,number_penaltys)\n",
    "train_scores = np.array(train_means).reshape(n_Cs,number_penaltys)\n",
    "test_stds = np.array(test_stds).reshape(n_Cs,number_penaltys)\n",
    "train_stds = np.array(train_stds).reshape(n_Cs,number_penaltys)\n",
    "\n",
    "x_axis = np.log10(Cs)\n",
    "for i, value in enumerate(penaltys):\n",
    "    #pyplot.plot(log(Cs), test_scores[i], label= 'penalty:'   + str(value))\n",
    "    plt.errorbar(x_axis, test_scores[:,i], yerr=test_stds[:,i] ,label = penaltys[i] +' Test')\n",
    "    plt.errorbar(x_axis, train_scores[:,i], yerr=train_stds[:,i] ,label = penaltys[i] +' Train')\n",
    "    \n",
    "plt.legend()\n",
    "plt.xlabel( 'log(C)' )                                                                                                      \n",
    "plt.ylabel( 'neg-logloss' )\n",
    "plt.savefig('LogisticGridSearchCV_C.png' )\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上图给出了L1正则和L2正则下、不同正则参数C对应的模型在训练集上测试集上的正确率（score）。可以看出在训练集上C越大（正则越少）的模型性能越好；但在测试集上当C在1附近时性能最好，此时使用的是L2正则项\n",
    "   \n",
    "  \n",
    "如果最佳值在候选参数的边缘，最好再尝试更大的候选参数或更小的候选参数，直到找到拐点。  \n",
    "\n",
    "这里训练集和测试集分别是l2, c=10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 参数调优 - 1 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
       "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
       "          verbose=0, warm_start=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': array([   1.     ,    3.02041,    5.04082,    7.06122,    9.08163,\n",
       "         11.10204,   13.12245,   15.14286,   17.16327,   19.18367,\n",
       "         21.20408,   23.22449,   25.2449 ,   27.26531,   29.28571,\n",
       "         31.30612,   33.32653,   35.34694,   37.36735,   ....85714,   87.87755,   89.89796,\n",
       "         91.91837,   93.93878,   95.95918,   97.97959,  100.     ])},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Cs1 = np.linspace(1, 100)\n",
    "tuned_parameters1 = dict(penalty = penaltys, C = Cs1)\n",
    "\n",
    "grid1= GridSearchCV(lr_penalty, tuned_parameters1,cv=5, scoring='neg_log_loss')\n",
    "grid1.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.470721415163\n",
      "{'C': 23.224489795918366, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "print(-grid1.best_score_)\n",
    "print(grid1.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "此时最佳参数C=23 和penalty为L2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 参数调优 - 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise',\n",
       "       estimator=LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
       "          intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
       "          penalty='l2', random_state=None, solver='liblinear', tol=0.0001,\n",
       "          verbose=0, warm_start=False),\n",
       "       fit_params=None, iid=True, n_jobs=1,\n",
       "       param_grid={'penalty': ['l1', 'l2'], 'C': array([ 10.     ,  10.81633,  11.63265,  12.44898,  13.26531,  14.08163,\n",
       "        14.89796,  15.71429,  16.53061,  17.34694,  18.16327,  18.97959,\n",
       "        19.79592,  20.61224,  21.42857,  22.2449 ,  23.06122,  23.87755,\n",
       "        24.69388,  25.5102 ,  26.32653,...     44.28571,  45.10204,  45.91837,  46.73469,  47.55102,  48.36735,\n",
       "        49.18367,  50.     ])},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring='neg_log_loss', verbose=0)"
      ]
     },
     "execution_count": 116,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Cs2 = np.linspace(10, 50)\n",
    "tuned_parameters2 = dict(penalty = penaltys, C = Cs2)\n",
    "\n",
    "grid2= GridSearchCV(lr_penalty, tuned_parameters2,cv=5, scoring='neg_log_loss')\n",
    "grid2.fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.470772990598\n",
      "{'C': 35.306122448979593, 'penalty': 'l2'}\n"
     ]
    }
   ],
   "source": [
    "print(-grid2.best_score_)\n",
    "print(grid2.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 可以看出，随着参数C的增大log_loss损失趋近与0.4707..., 此时最佳参数C=23.224 和penalty为L2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.4 用LogisticRegressionCV实现正则化的 Logistic Regression\n",
    "### 4.4.1  L1正则"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegressionCV(Cs=[0.001, 0.01, 0.1, 1, 10, 100, 1000],\n",
       "           class_weight=None, cv=5, dual=False, fit_intercept=True,\n",
       "           intercept_scaling=1.0, max_iter=100, multi_class='ovr',\n",
       "           n_jobs=1, penalty='l1', random_state=None, refit=True,\n",
       "           scoring='neg_log_loss', solver='liblinear', tol=0.0001,\n",
       "           verbose=0)"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegressionCV\n",
    "\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "\n",
    "# 大量样本、高维度，L1正则 --> 可选用saga优化求解器\n",
    "# LogisticRegressionCV比GridSearchCV快\n",
    "lrcv_L1 = LogisticRegressionCV(Cs=Cs, cv = 5, scoring='neg_log_loss', penalty='l1', solver='liblinear', multi_class='ovr')\n",
    "lrcv_L1.fit(X_train, y_train)    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{1: array([[-0.65371194, -0.63205865, -0.54759168, -0.46322178, -0.45924904,\n",
       "         -0.45896576, -0.45890647],\n",
       "        [-0.65461694, -0.56731419, -0.49377771, -0.46828617, -0.47216582,\n",
       "         -0.47278232, -0.4728399 ],\n",
       "        [-0.65784991, -0.61517067, -0.56861434, -0.52632609, -0.53044793,\n",
       "         -0.53095827, -0.53101874],\n",
       "        [-0.65478406, -0.58344893, -0.51746527, -0.42571205, -0.41858288,\n",
       "         -0.41786871, -0.41788224],\n",
       "        [-0.65647541, -0.58458688, -0.52549193, -0.47363568, -0.47452136,\n",
       "         -0.47469325, -0.47474443]])}"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrcv_L1.scores_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n1GRYSJKa/j9kCoPshp8k9gAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2461691e278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C is: [ 10.]\n"
     ]
    }
   ],
   "source": [
    "# scores_：dict with classes as the keys, and the values as the grid of scores obtained during cross-validating each fold,\n",
    "# Each dict value has shape (n_folds, len(Cs))\n",
    "n_Cs = len(Cs)\n",
    "n_classes = 2\n",
    "scores =  np.zeros((n_classes,n_Cs))\n",
    "for j in range(n_classes):\n",
    "       \n",
    "        scores[j][:] = np.mean(lrcv_L1.scores_[1][j],axis = 0)\n",
    "    \n",
    "mse_mean = -np.mean(scores, axis = 0)\n",
    "plt.plot(np.log10(Cs), mse_mean.reshape(n_Cs,1)) \n",
    "#plt.plot(np.log10(reg.Cs)*np.ones(3), [0.28, 0.29, 0.30])\n",
    "plt.xlabel('log(C)')\n",
    "plt.ylabel('neg-logloss')\n",
    "plt.show()\n",
    "print ('C is:',lrcv_L1.C_)  #对多类分类问题，每个类别的分类器有一个C"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.1295443 ,  0.03708145, -0.01205173,  0.00468366, -0.0011245 ,\n",
       "         0.10350723,  0.59781483,  0.01278392]])"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrcv_L1.coef_"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用L1正则时，最佳参数C=10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.4.2 L2正则"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LogisticRegressionCV(Cs=[0.001, 0.01, 0.1, 1, 10, 100, 1000],\n",
       "           class_weight=None, cv=5, dual=False, fit_intercept=True,\n",
       "           intercept_scaling=1.0, max_iter=100, multi_class='ovr',\n",
       "           n_jobs=1, penalty='l2', random_state=None, refit=True,\n",
       "           scoring='neg_log_loss', solver='liblinear', tol=0.0001,\n",
       "           verbose=0)"
      ]
     },
     "execution_count": 103,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegressionCV\n",
    "\n",
    "Cs = [0.001, 0.01, 0.1, 1, 10, 100, 1000]\n",
    "\n",
    "# 大量样本（6W+）、高维度（93），L2正则 --> 缺省用lbfgs，为了和GridSeachCV比较，也用liblinear\n",
    "\n",
    "lr_cv_L2 = LogisticRegressionCV(Cs=Cs, cv = 5, scoring='neg_log_loss', penalty='l2', solver='liblinear', multi_class='ovr')\n",
    "lr_cv_L2.fit(X_train, y_train)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{1: array([[-0.61690622, -0.60227873, -0.5699804 , -0.4913378 , -0.4620053 ,\n",
       "         -0.45959175, -0.45916443],\n",
       "        [-0.55300108, -0.53690352, -0.51236148, -0.46886015, -0.46892046,\n",
       "         -0.47235502, -0.47282014],\n",
       "        [-0.6144054 , -0.62211973, -0.59904235, -0.53849425, -0.52871053,\n",
       "         -0.5307006 , -0.53105498],\n",
       "        [-0.57666791, -0.57408916, -0.54219193, -0.45654316, -0.42234109,\n",
       "         -0.41842387, -0.41802763],\n",
       "        [-0.58682616, -0.58123728, -0.55111719, -0.48444548, -0.47254734,\n",
       "         -0.47444476, -0.47475313]])}"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lr_cv_L2.scores_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nkpr+Pwmrnr2BGyYGAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x246169fdba8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C is: [ 10.]\n"
     ]
    }
   ],
   "source": [
    "n_Cs = len(Cs)\n",
    "n_classes = 2\n",
    "scores =  np.zeros((n_classes,n_Cs))\n",
    "\n",
    "for j in range(n_classes):\n",
    "        scores[j][:] = np.mean(lr_cv_L2.scores_[1][j],axis = 0)\n",
    "    \n",
    "mse_mean = -np.mean(scores, axis = 0)\n",
    "plt.plot(np.log10(Cs), mse_mean.reshape(n_Cs,1)) \n",
    "#plt.plot(np.log10(reg.Cs)*np.ones(3), [0.28, 0.29, 0.30])\n",
    "plt.xlabel('log(C)')\n",
    "plt.ylabel('neg-logloss')\n",
    "plt.show()\n",
    "\n",
    "print ('C is:',lr_cv_L2.C_)  #对多类分类问题，每个类别的分类器有一个C"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用L2正则时，最佳参数C=10"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4.5  SVM\n",
    "### 4.5.1 线性SVM正则超参数调优"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "线性SVM LinearSVC的需要调整正则超参数包括C（正则系数，一般在log域（取log后的值）均匀设置候选参数）和正则函数penalty（L2/L1）  \n",
    "采用交叉验证，网格搜索步骤与Logistic回归正则参数处理类似.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#LinearSVC不能得到每类的概率，在Otto数据集要求输出每类的概率，这里只是示意SVM的使用方法\n",
    "#https://xacecask2.gitbooks.io/scikit-learn-user-guide-chinese-version/content/sec1.4.html\n",
    "#1.4.1.2. 得分与概率\n",
    "from sklearn.svm import LinearSVC\n",
    "from sklearn.metrics import accuracy_score\n",
    "from sklearn.metrics import classification_report\n",
    "from sklearn.metrics import confusion_matrix\n",
    "#训练模型\n",
    "SVC1 = LinearSVC().fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classification report for classifier LinearSVC(C=1.0, class_weight=None, dual=True, fit_intercept=True,\n",
      "     intercept_scaling=1, loss='squared_hinge', max_iter=1000,\n",
      "     multi_class='ovr', penalty='l2', random_state=None, tol=0.0001,\n",
      "     verbose=0):\n",
      "             precision    recall  f1-score   support\n",
      "\n",
      "          0       0.93      0.14      0.25        99\n",
      "          1       0.39      0.98      0.56        55\n",
      "\n",
      "avg / total       0.74      0.44      0.36       154\n",
      "\n",
      "\n",
      "Confusion matrix:\n",
      "[[14 85]\n",
      " [ 1 54]]\n"
     ]
    }
   ],
   "source": [
    "y_predict = SVC1.predict(X_test)\n",
    "\n",
    "print(\"Classification report for classifier %s:\\n%s\\n\"% (SVC1, classification_report(y_test, y_predict)))\n",
    "print(\"Confusion matrix:\\n%s\" % confusion_matrix(y_test, y_predict))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def fit_grid_point_Linear(C, X_train, y_train, X_test, y_test):\n",
    "    # 在训练集是那个利用SVC训练\n",
    "    SVC2 =  LinearSVC( C = C)\n",
    "    SVC2 = SVC2.fit(X_train, y_train)\n",
    "    # 在校验集上返回accuracy\n",
    "    accuracy = SVC2.score(X_test, y_test)\n",
    "    print(\"accuracy: {}\".format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.6558441558441559\n",
      "accuracy: 0.6038961038961039\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.44155844155844154\n",
      "accuracy: 0.6493506493506493\n",
      "accuracy: 0.6493506493506493\n",
      "accuracy: 0.487012987012987\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\envs\\python3\\lib\\site-packages\\matplotlib\\axes\\_axes.py:545: UserWarning: No labelled objects found. Use label='...' kwarg on individual plots.\n",
      "  warnings.warn(\"No labelled objects found. \"\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x246168e3710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#需要调优的参数\n",
    "C_s = np.logspace(-3, 3, 7)# logspace(a,b,N)把10的a次方到10的b次方区间分成N份  \n",
    "#penalty_s = ['l1','l2']\n",
    "\n",
    "accuracy_s = []\n",
    "for i, oneC in enumerate(C_s):\n",
    "#    for j, penalty in enumerate(penalty_s):\n",
    "    tmp = fit_grid_point_Linear(oneC, X_train, y_train, X_test, y_test)\n",
    "    accuracy_s.append(tmp)\n",
    "\n",
    "x_axis = np.log10(C_s)\n",
    "#for j, penalty in enumerate(penalty_s):\n",
    "plt.plot(x_axis, np.array(accuracy_s), 'b-')\n",
    "    \n",
    "plt.legend()\n",
    "plt.xlabel( 'log(C)' )                                                                                                      \n",
    "plt.ylabel( 'accuracy' )\n",
    "plt.savefig('SVM_RentListing.png' )\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最精确的是0.727，对应的C是0.01"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 线性SVM和Logistic回归比较"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "1）LR和SVM都是分类算法， 是线性分类模型，它们的分类决策面是线性的  \n",
    "2）SVM只考虑分类面附近的局部的点，即支持向量，LR则考虑所有的点，与分类面距离较远的点对结果也起作用，作用较小。  \n",
    "3）SVM损失函数自带正则项，因此，SVM是结构风险最小化算法。而LR需要额外在损失函数上加正则项。  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.5.2 RBF核SVM正则参数调优\n",
    "RBF核是SVM最常用的核函数。 RBF核SVM 的需要调整正则超参数包括C（正则系数，一般在log域（取log后的值）均匀设置候选参数）和核函数的宽度gamma C越小，决策边界越平滑； gamma越小，决策边界越平滑。\n",
    "采用交叉验证，网格搜索步骤与Logistic回归正则参数处理类似。\n",
    "这里我们用校验集（X_val、y_val）来估计模型性能"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC\n",
    "def fit_grid_point_RBF(C, gamma, X_train, y_train, X_test, y_test):\n",
    "    # 在训练集是那个利用SVC训练\n",
    "    SVC3 =  SVC( C = C, kernel='rbf', gamma = gamma)\n",
    "    SVC3 = SVC3.fit(X_train, y_train)\n",
    "    # 在校验集上返回accuracy\n",
    "    accuracy = SVC3.score(X_test, y_test)\n",
    "    \n",
    "    print(\"accuracy: {}\".format(accuracy))\n",
    "    return accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def plot_result(C_s, gamma_s):\n",
    "    accuracy_s1 =np.array(accuracy_s).reshape(len(C_s),len(gamma_s))\n",
    "    x_axis = np.log10(C_s)\n",
    "    for j, gamma in enumerate(gamma_s):\n",
    "        plt.plot(x_axis, np.array(accuracy_s1[:,j]), label = ' Test - log(gamma)' + str(np.log10(gamma)))\n",
    "\n",
    "    plt.legend()\n",
    "    plt.xlabel( 'log(C)' )                                                                                                      \n",
    "    plt.ylabel( 'accuracy' )\n",
    "    plt.savefig('SVM_RBF_RentListing.png' )\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.7077922077922078\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6623376623376623\n",
      "accuracy: 0.6493506493506493\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6688311688311688\n",
      "accuracy: 0.6493506493506493\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n"
     ]
    }
   ],
   "source": [
    "#需要调优的参数\n",
    "C_s = np.logspace(-2, 2, 5)\n",
    "gamma_s = np.logspace(-2, 2, 5)  \n",
    "\n",
    "accuracy_s = []\n",
    "for i, oneC in enumerate(C_s):\n",
    "    for j, gamma in enumerate(gamma_s):\n",
    "        tmp = fit_grid_point_RBF(oneC, gamma, X_train, y_train, X_test, y_test)\n",
    "        accuracy_s.append(tmp)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEKCAYAAADjDHn2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd8VHW+//HXJ43QS0IPndBLCKEIFrBSBBuC+HPXXdu6\nrvfuri62dcv1qmtdr/fqetdrL6tERUTFghWlaAYE6ZBQTGgJAQIB0j+/P84kDCFlUs7MJPk8H495\nmDlzzpnPHBM+c9r7K6qKMcYYU5WwYBdgjDEm9FmzMMYYUy1rFsYYY6plzcIYY0y1rFkYY4ypljUL\nY4wx1bJmYYwxplrWLIwxxlTLmoUxxphqRbi5chGZAjwJhAPPqepD5V5/ApjsfdoC6KSq7byvfQyM\nB75V1Yure6/Y2Fjt3bt3PVZvjDGN36pVqw6oasfq5nOtWYhIOPA0cAGQAaSIyCJV3Vg6j6r+3mf+\nfwNG+aziUZwG8it/3q937954PJ76KN0YY5oMEdnlz3xuHoYaC6Sq6nZVLQDeBC6pYv65wBulT1T1\nc+Coi/UZY4zxk5vNojuQ7vM8wzvtNCLSC+gDfOFiPcYYY2rJzWYhFUyrLOL2KuBtVS2u0RuI3CQi\nHhHxZGVl1bhAY4wx/nHzBHcG0MPneRywp5J5rwJ+U9M3UNVngWcBkpKSLGvdNBqFhYVkZGSQl5cX\n7FJMIxEdHU1cXByRkZG1Wt7NZpECxItIH2A3TkO4uvxMIjIQaA+scLEWYxqUjIwMWrduTe/evRGp\naCfdGP+pKtnZ2WRkZNCnT59arcO1w1CqWgTcCnwCbAKSVXWDiNwnIjN9Zp0LvKnlRmESkW+At4Dz\nRCRDRC5yq1ZjQk1eXh4xMTHWKEy9EBFiYmLqtKfq6n0WqroYWFxu2p/LPf9rJcue5V5lxoQ+axSm\nPtX198nu4DbGZZ9t3M/W/XYVuGnYrFkY46Ls3Hx+/foqbnl9NUXFJcEup1bGjRtHQkICPXv2pGPH\njiQkJJCQkMDOnTtrtJ4FCxawefPmGr//mWeeyZo1a2q8XKnHHnuMf/3rX7VePhCuvPJKtm/fXuFr\nH3/8MYmJiQwfPpzRo0fz1VdfVThfdnY25513HvHx8Vx00UXk5OTUa43WLIxx0bs/7KawWEnNzCXZ\nkxHscmrlu+++Y82aNdx3333MmTOHNWvWsGbNGmoar1PbZlEXhYWFvPrqq8yZMyeg71tTN998M48+\n+miFr3Xq1IkPP/yQdevW8cILL/Czn/2swvkeeOABpk6dyrZt2zjrrLN45JFH6rVGaxbGuERVSfak\nM7JHO5J6teeJz7ZyLL8o2GXVq48++ogzzjiDxMRE5syZw7FjxwCYN28eQ4YMYcSIEdx555188803\nLF68mN///ve12isp9dprrzF8+HCGDRvGPffcUzb9n//8JwMGDGDSpEnccMMN/O53vwNgyZIljBkz\nhvDwcABWrlzJiBEjmDBhAvPmzSMhIQGAtLQ0zjrrLEaNGsXo0aP57rvvAPjss8+YPHkys2bNIj4+\nnnvvvZdXXnmFMWPGMGLEiLLPcc011/Cb3/yGyZMn069fP5YuXcq1117LoEGDuP7668vqvOmmm0hK\nSmLo0KHcd999ZdMnTZrExx9/THHx6beaJSYm0rVrVwCGDx9Obm4uhYWFp8333nvvce211wJw7bXX\nsnDhwlpt48q4eoLbmKZsbUYOW/fn8uBlwxnYpTVXPLOc//tmO787f0CN1vMf729g454j9VrbkG5t\n+MuMoXVaR2ZmJg899BCff/45LVq04IEHHuDJJ5/k+uuvZ/HixWzYsAER4fDhw7Rr145p06Yxa9Ys\nLr300lq9X0ZGBvfeey8ej4e2bdty/vnn88EHHzBy5EgeeughVq9eTcuWLZk0aRJjx44FYNmyZYwe\nPbpsHb/85S95+eWXGTt2LH/4wx/Kpnft2pUlS5YQHR3N5s2bufbaa8saxtq1a9m0aRNt27ald+/e\n3HLLLaSkpPD444/z1FNP8dhjjwGQk5PDl19+yTvvvMOMGTNYsWIFgwYNIjExkfXr1zNs2DAeeugh\nOnToQFFRUVkTGjJkCOHh4fTu3Zv169czcuTISrdBcnIy48aNq/BeiezsbDp2dPIAu3fvzt69e2u1\nnStjexbGuGR+SjrRkWHMGNmV0b3aM3VYF55dup3Mo43jRrvly5ezceNGJkyYQEJCAq+//jo7d+6k\nQ4cOhIWFceONN/Luu+/SsmXLenm/7777jnPPPZfY2FgiIyO5+uqrWbp0adn09u3bExUVxaxZs8qW\n2bt3b9k/oAcOHKCgoKCskVx99cnbvvLz87n++usZNmwYV111FRs3luWdMm7cODp37kx0dDR9+/bl\nooucq/iHDx9+yh7SjBkzyqZ369aNIUOGEBYWxpAhQ8rme+ONN0hMTCQxMZFNmzad8j6dOnViz57K\n7luGdevWce+99/LMM8/4tb3q+2o627MwxgUnCop5f+0epg3vSuto51vgHVMGsWTjfp5Yso2/XT7c\n73XVdQ/ALarKlClTePXVV097zePxsGTJEt58802eeeYZPv3000rX4/sP+OWXX86f//znCucrdytW\ntdMBmjdvXnZvQVXzPf744/To0YPXXnuNwsJCWrVqVfZas2bNyn4OCwsrex4WFkZRUdFp8/nO4zvf\ntm3bePLJJ/n+++9p164d11xzzSn3PeTl5dG8eXPefvtt7r//fgBeeuklEhIS+Omnn7j88st57bXX\nKr2pLiYmhqysLDp27Mju3bvp0qVLpZ+3NmzPwhgXLF63l9z8IuYknUy86RPbkmvG92J+yk+kZjb8\nS2knTJjA119/XXYVz7Fjx9i2bRtHjx7lyJEjXHzxxTzxxBP88MMPALRu3ZqjR0//3FFRUWUnzStr\nFADjx4/nyy+/JDs7m6KiIt58803OOeccxo0bx5dffsnhw4cpLCxkwYIFZcsMHjyY1NRUADp27Ehk\nZGTZUAZvvvlm2Xw5OTl07doVEeHll1+usrHU1pEjR2jdujVt2rRh7969fPLJJ6e8vm3bNoYOHcqs\nWbPKtkdCQgKHDh1i+vTpPPbYY4wfP77S9c+cOZOXX34ZgJdffplLLqkq5LvmrFkY44JkTzq9Y1ow\ntk+HU6b/27n9aRkVwUMfBfaqIDd07tyZ559/njlz5jBy5EgmTJjA1q1bycnJYfr06YwcOZJzzz2X\nv//97wDMnTuXBx98sNYnuOPi4rjvvvuYNGkSCQkJjB8/nunTp9OzZ0/mzZvH2LFjufDCCxk6dCht\n27YFYNq0aXz99ddl63jhhRf45S9/yYQJEwgLCyub79Zbb+W5555j/Pjx7Nq165Q9g/qSmJjIkCFD\nGDZsGDfeeCMTJ04se23Pnj20bdu27JCZryeffJIdO3bwl7/8peyy5ezsbMA5B1N6WfE999zDhx9+\nSHx8PEuXLmXevHn1+wFUtVE8Ro8ercaEgh1Zudrrzg/0qS+2Vfj6U19s0153fqAr0g5Uuo6NGze6\nVV6jdPToUVVVLSgo0KlTp+qiRYvKXpsxY4ampaWdMp+q6v3336+33XZbYAutxCOPPKIvvfSS6+9T\n0e8V4FE//o21PQtj6lmyJ50wgSsS4yp8/foz+9C1bTQPLt5ESYmFJdeHP/3pT4waNYoRI0YwcOBA\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2461673e470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_result(C_s, gamma_s)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n",
      "accuracy: 0.6428571428571429\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEKCAYAAADjDHn2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt8VfWZ7/HPN1yEFgTlYpGIQQ13IWBAClrBqZXxAtZj\nQRytVYttlTnttKVq6+gMVY+O2tbz8jK1trVqBWmLyCiVokPFUVGCokiQGvFC0B4xxQu2SNDn/LF3\ndndCyN4JWUkg3/frxYu9fuu31n7WDuwnv3V5fooIzMzMGlLQ2gGYmVnb52RhZmY5OVmYmVlOThZm\nZpaTk4WZmeXkZGFmZjk5WZiZWU5OFmZmlpOThZmZ5dSxtQNoLr17946ioqLWDsPMbK+yevXqdyKi\nT65++0yyKCoqoqysrLXDMDPbq0h6PZ9+Pg1lZmY5OVmYmVlOThZmZpbTPnPNwmxvV11dTWVlJdu3\nb2/tUGwf1KVLFwoLC+nUqVOTtneyMGsjKisr6d69O0VFRUhq7XBsHxIRVFVVUVlZycCBA5u0D5+G\nMmsjtm/fTq9evZworNlJolevXns0anWyMGtDnCgsKXv6b8vJwszMcnKyMLNdHH300ZSUlDBgwAD6\n9OlDSUkJJSUlvPbaa43az8KFC3nppZca/f7HHHMMa9asafR2NW644QbuvffeJm/fEr70pS+xcePG\nzPKll15KYWEhPXv2bHC7q666iiOOOIIhQ4bwyCOPJB1mhi9wm9kunn76aQDuvPNOysrKuPnmm5u0\nn4ULF1JQUMCQIUOaM7wGVVdXc/fdd/Pss8+22Hs2xde//nWuv/56brvtNgCmTZvG7NmzGTFixG63\neeGFF1i4cCHl5eVs2rSJKVOmsGHDBgoKkv+93yMLM2uU3//+93z2s59lzJgxzJgxgw8//BCAOXPm\nMGzYMEaOHMkll1zC448/zpIlS/iXf/mXJo1Katxzzz0ceeSRjBgxgu9///uZ9p/+9KcMGjSISZMm\n8dWvfpVvfetbACxbtoyxY8fSoUMHAFauXMnIkSOZMGECc+bMoaSkBIBXXnmFY489ltGjR3PUUUdl\nEuQjjzzC5MmTOeOMMyguLubyyy/nrrvuYuzYsYwcOTJzHGeffTYXX3wxkydP5vDDD2fFihWce+65\nDBkyhAsuuCAT54UXXkhpaSnDhw9n7ty5mfZJkybx8MMP8/HHHwPw2c9+ls985jMNfhYPPPAAM2fO\npHPnzhx++OEMGDCA1atXN+lzbSyPLMzaoH//r3WUv/l+s+5z2MH7c+Wpw/doH2+//TbXXnstjz76\nKJ/61Ke4+uqruemmm7jgggtYsmQJ69atQxLvvvsuPXv25KSTTuKMM87gtNNOa9L7VVZWcvnll1NW\nVkaPHj34/Oc/z4MPPsioUaO49tprefbZZ/n0pz/NpEmTGDduHABPPPEERx11VGYf5513Hr/61a8Y\nN24c3/3udzPt/fr1Y9myZXTp0oWXXnqJc889N5Mwnn/+edavX0+PHj0oKirioosuYtWqVdx4443c\nfPPN3HDDDQC89957LF++nN/97neceuqpPPXUUwwZMoQxY8bw4osvMmLECK699loOPPBAdu7cmUlC\nw4YNo0OHDhQVFfHiiy8yatSovD6PzZs3M2nSpMxyYWEhmzdvZuzYsU36fBvDIwszy9uTTz5JeXk5\nEyZMoKSkhF//+te89tprHHjggRQUFDBr1izuv/9+Pv3pTzfL+z399NMcf/zx9O7dm06dOnHWWWex\nYsWKTPsBBxxA586dOeOMMzLbvPXWW/Tpkyqi+s4777Bjx45MIjnrrLMy/T766CMuuOACRowYwZln\nnkl5eXlm3dFHH81BBx1Ely5dOOywwzjxxBMBOPLII2uNkE499dRM+8EHH8ywYcMoKChg2LBhmX7z\n5s1jzJgxjBkzhvXr19d6n759+/Lmm2/m/XlExC5tLXUHnUcWZm3Qno4AkhIRTJkyhbvvvnuXdWVl\nZSxbtoz58+dz22238Yc//GG3+8n+Aj/99NO54oordvt+jWkH6Nq1a+Z5gob63XjjjRxyyCHcc889\nVFdX061bt8y6/fbbL/O6oKAgs1xQUMDOnTt36ZfdJ7vfyy+/zE033cQzzzxDz549Ofvss2s967B9\n+3a6du262xjrKiwsZNOmTZnlyspKDj744Ly33xMeWZhZ3iZMmMBjjz2WuYvnww8/5OWXX+aDDz7g\n/fff55RTTuHHP/4xzz33HADdu3fngw8+2GU/nTt3Zs2aNaxZs2a3iQJg/PjxLF++nKqqKnbu3Mn8\n+fM57rjjOProo1m+fDnvvvsu1dXVLFy4MLPN0KFDqaioAKBPnz506tQpM33B/PnzM/3ee+89+vXr\nhyR+9atfNZhYmur999+ne/fu7L///rz11lssXbq01vqXX36Z4cPz/8Vg6tSpzJs3jx07dvDKK6/w\n+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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x24616b2e080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#需要调优的参数\n",
    "C_s1 = np.logspace(1, 2, 5)\n",
    "gamma_s1 = np.logspace(1, 2, 5)  \n",
    "\n",
    "accuracy_s = []\n",
    "for i, oneC in enumerate(C_s1):\n",
    "    for j, gamma in enumerate(gamma_s1):\n",
    "        tmp = fit_grid_point_RBF(oneC, gamma, X_train, y_train, X_test, y_test)\n",
    "        accuracy_s.append(tmp)\n",
    "plot_result(C_s1, gamma_s1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "####  从结果中可得 C=1，gamma=100时 最佳, 调参过后，由于图中的线是水平线，说明c和gamma已经到了最佳值，而且之后一直都是"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
